2

プロジェクトで Windows Workflow 4.0 バージョンを使用してワークフローを管理しています。ユーザーによって承認される 100 のドキュメントを持つシステムで 1 つのプロジェクトが作成され、各ドキュメントは同じワークフロー プロセスに従う必要があります。ドキュメント処理は、100 ドキュメントに対して並列です。どちらが終了しても、次のワークフロー ステップに進むことができます。[例: ドキュメントの作成 - レビュー用に送信 - レビュー済み - 承認済み]。

現在、100 個のドキュメントに対して 100 個のインスタンスを作成しています。ただし、ドキュメントが驚異的に増加している場合 (例: 10000 ドキュメント) のパフォーマンスについてはわかりません。また、いつでも複数のプロジェクトをシステムに作成できます。

このシナリオを処理するより良い方法はありますか?

アプリケーションは ASP.Net に基づいており、IIS を実行しています。

4

4 に答える 4

1

ワークフローの手順 (ドキュメントの作成 - レビュー用に送信 - レビュー済み - 承認済み) は、人間のやり取りが含まれているように聞こえます。つまり、人間の時間スケールで進行するということです。最低でも数分、多くの場合、数時間または数日です。ワークフロー 4.0 は、このユース ケースを念頭に置いて設計されています。アクティブに進行していないインスタンスはデータベース ストアに永続化されます。数万のインスタンスへのスケーリングは問題になりません。

于 2011-12-20T02:56:46.597 に答える
0

IIS で AppFabric (Windows サーバー) を使用して WF をホストしている場合、これは問題ではありません。あなたが説明する手順は、WF が時間の遅延または人間の操作によるメッセージを待っていることを意味します。プロセスは、これらのイベントが発生するまでアイドル状態になります。つまり、短いアイドル タイムアウトの後、イベントはメモリからアンロードされます。このように、何百万もの同時プロセスを処理できます。

于 2012-04-02T08:40:58.080 に答える
0

シナリオを最適化するお手伝いはできませんが、(xaml をロードしてインスタンスを作成するたびに) 最初にアクティビティをキャッシュし、次にメモリ内のインスタンスをいつアンロードするかを正しく判断することで、パフォーマンスを最適化できます。

于 2012-03-13T17:25:31.720 に答える