4

WCFサーバーでの操作の1つは約8(!!!)時間動作しています...そして、それが完了したら、クライアントでこの操作の結果を表示する必要があります。

クライアントとの接続を長時間保持しても大丈夫ですか?はいの場合、24時間稼働の場合は大丈夫ですか?または、このようなsmthを使用する方が良い ですか?

SOで答えを見つけようとしましたが、成功しませんでした。

4

1 に答える 1

2

かなりの時間がかかると予想される操作を処理する場合は、常に非同期にする方がはるかに優れています (操作を「実行速度が遅い」と宣言するための私の個人的な経験則では、平均的なユーザーがヒットするのに必要な時間とほぼ同じ時間がかかる必要があります)遅い Web ページでの「リロード」 (約 10 秒と推測されます。私が働いていた会社では、0.5 秒以上かかる操作はすべて「遅い」と宣言されていました)。

接続を開いたままにしておくと、多くの問題が存在します。

  • タイムアウト- 8 時間に設定する必要があります。これは、少なくともユーザーの操作に関する限り、すべての実用的な目的で無効にすることと同じです。
  • クライアントの再起動- クライアントがサーバーからの同期応答を保持している場合、結果のレポートはクライアントの再起動後は存続しません。
  • 中間進捗レポート- 操作が数時間実行される場合、複数の段階で構成される可能性があります。非同期に移行すると、操作が複数の段階を経るにつれて、完了率と一般的な操作プロセスについてレポートできます。

そのため、長時間実行されるすべての操作で二重通信を使用することを強く推奨する必要があります。

于 2012-12-24T13:42:25.763 に答える