0

設計レベルの問題があり、これを解決する方法がわかりませんが、基本的に達成したいのは、入力ジョブに基づいて特定のタスクを実行するコンソールベースのアプリケーションがあることです (これは XML ファイルであり、ジョブを実行するためのすべての詳細)、およびジョブを作成する Web ベースのアプリケーションがあります。

現在、XML ファイルを手動でコピーし、XML ファイルをパラメーターとして渡すことで、コンソール ベースのアプリを呼び出します。

とにかく、Web ベースのアプリケーションで作成されたすべてのジョブがキューに渡されるアプリケーションを設計できますか。

ジョブがキューに入れられるのを (ラウンド ロビン方式で) 待機している 2 つの空腹のコンソール ベースのアプリケーションが存在する可能性があります。ジョブが見つかるとすぐに、ジョブの実行が開始されます。

他に、私が考えていたのは、Web サイトからコンソール ベースのアプリケーションの数を制御できる技術的な方法があるということです。たとえば、キュ​​ーに 50 のジョブがあり、10 個のコンソール ベースのアプリケーションを開始して、 2 つではなく 50 ジョブなので、この方法で作業を完了できます。

さらに情報が必要な場合はお知らせください

前もって感謝します

4

1 に答える 1

0

私は次のようにそのようなことをしました。

オーケストレーターである Windows サービスがあります。つまり、Quartz.NET を使用してタスクをスケジュールします。定期的に実行されるタスクには、次の 4 種類があります。

  • ファイル登録者タスク: 新しい xml ファイルを取得し、データベースに登録します。
  • バッチ ローダー: 登録されたファイルのバッチを作成します
  • バッチ エクストラクタ: 新しいバッチのジョブを作成します
  • ジョブ実行者: ジョブを実行します。

この Windows サービスには、これらのタスクをスケジュールする以外のロジックはありません。Job Executor タスクは、並行して複数回実行することもできます。

実際のロジックは、Windows サービス内から呼び出される (バッチ インポート) WCF サービスにあります。このようにして、管理 Web サイトなどの他のアプリケーションは Batch Import WCF サービスを使用できるため、ファイル、バッチ、進行状況などのリストを取得し、それらを操作できるようになります。

oj ジョブの実行の結果として実行される一般的なドメイン ロジックは、バッチ インポート サービスから呼び出される専用のドメイン サービスで行われます。

ステップを自動にするか手動にするか、バッチをトランザクションにするかなどを示すプロパティを設定することもできます。このように非常に柔軟で、さまざまな状態のデータベースにすべてが保持されるため、何か問題が発生した場合に再開できます。スケーラブルでもあります。すべてを複数のマシンに配置し、WCF サービスの負荷を分散し、ジョブを並行して実行できます。

于 2013-04-24T08:06:15.880 に答える