私のアプリケーションでは、約100ミリ秒以内に約100件のバッチジョブが要求されますが、実際にはこれらのジョブ要求は1つのジョブ要求としてマスクされています。 現時点では、1つのジョブ要求のみが実行可能でないように、この問題を修正してください。ASP.NET:バッチジョブの実行
私が考えていた回避策は、アプリケーションがxミリ秒ごとに1回のバッチジョブしか実行しないようにプログラムすることです。この場合は200ミリ秒と考えていましたが、200ミリ秒私のバッチジョブが完了したとき。それらの200ミリ秒が稼働した後、またはバッチジョブが完了した後、私のアプリケーションはその時から1つのジョブ要求を待って受け入れ、前に無視された要求を処理しません。私のアプリケーションが別のジョブ要求を受け入れると、上記のサイクルが繰り返されます。
.Net 4.0を使用してこれを行う最善の方法は何ですか?私がガイドとして単に従うことができるボイラプレートのコードはありますか?
更新 ご迷惑をおかけして申し訳ありません。私は私のシナリオについての詳細を追加しました。また、私は、上記の私の提案した回避策がうまくいかないことに気付きました。ごめんなさい、笑。ここに背景情報があります。
私は指定されたディレクトリのファイルを使用してインデックスを構築するアプリケーションを持っています。ファイルがこのディレクトリで追加、削除、または変更されると、アプリケーションはFileSystemWatcherを使用してこれらのイベントをリッスンし、これらのファイルを再インデックスします。問題は、およそ100のファイルが外部プロセスによって追加、削除、または変更され、非常に迅速に発生することです。すなわち、数ミリ秒以内に発生します。私の最終目標は、最後のファイル変更が外部プロセスによって発生した後にこれらのファイルのインデックスを再作成することです。最善の解決策は、私が聞いているファイルの変更が完了した時点でアプリケーションに信号を送るために外部プロセスを変更することですが、現時点では実現不可能です。したがって、私は回避策を作成する必要があります。
私の問題を解決する可能性のある回避策は、最初のファイル変更を待つことです。最初のファイル変更が発生した場合は、その後のファイル変更が200ミリ秒待機します。なぜ200ミリ秒でしょうか?なぜなら、外部プロセスが200ミリ秒以内にファイルの変更を実行できることを望んでいるからです。私のアプリケーションが200ミリ秒待ってから、ファイルのインデックスを再作成し、ファイルの変更を聞く別のサイクルを経るタスクを開始したいと思います。
これを行う最善の方法は何ですか?
もう一度、混乱して申し訳ありません。
私は200msのための要求を遅らせることは解決する方法が表示されません症状。ワークフローを再設計する必要があるように思えます。そうしないと、後で同じ状況になることがあります。症状を回避するのではなく、問題を解決するのはなぜですか? –