1

私が勤務する会社では、IIS でホストされているデータ処理用の Workflow Foundation の採用と実装を検討しています。私たちはまだ問題のドメインを設計していますが、長時間実行されるスレッドは IIS 内では理想的ではないという懸念が提起されました。以下は、ワークフローがまだ私たちのグループにとって新しいテクノロジーであるため、私たちが行っている仮定の一部です。

「長時間実行プロセス」と「長時間実行ワークフロー」を区別しています。長時間実行プロセスが積極的に CPU を消費しているのに対し、長時間実行ワークフローは、追加のリクエストが作業を完了するのを待っている間、不確定な時間持続します。 .

私の質問は、IIS でホストされているウィンドウ ワークフローの一部として実行時間の長いスレッドを作成することは良い方法ですか、それとも従来の Windows サービスを使用して IIS の外部で実行時間の長いプロセスを実装する必要があるのでしょうか?

4

1 に答える 1

1

AppFabric を使用すると、単純にループを永続化します (そうしないと、アイドル時に受信または遅延がアンロードされ、長時間実行されるプロセスが発生しないため、ループである必要があると思います)、インスタンス制御を有効にし、未処理の例外に対するアクションを放棄に設定します (これにより、 WF インスタンスを最後に保持されたポイントまで)。

アプリケーション プールでは、リサイクルやラピッド フェイルなどを無効にします。それが適切かどうかは、展開に関する問題、wcf 呼び出しを使用してプロセスとやり取りする場合、簡単にスケーリングする場合など、多くの事柄に依存します。 .. 個人的には、Windows サービスの煩わしさが嫌いで、予期しないプロセスの終了に常に対処しなければならないと思うので、それが起こることを想定して、安全な永続ポイントで IIS ルートを行ってみませんか?

于 2013-03-07T15:37:13.813 に答える