2

少し複雑な要件:

データコレクターとして機能し、利用可能なときにさまざまな場所からデータを収集するクォーツジョブがいくつかあります。次に、DB を更新するためにコレクター ジョブから呼び出される/トリガーされる別のジョブ [データ ロード] があります。

私の要件は、負荷ジョブを調整して、2 つのインスタンスのみを並行して実行し、コレクター ジョブからの作業を処理する方法です。

コレクター ジョブ 1、2、...N > ローダー ジョブ (2 つのインスタンス)

ジョブ プログラムはクラスター化された Tomcat にデプロイされます。

2 つの質問: 1) ローダー ジョブの 2 つのインスタンスが既に処理中の場合、コレクター ジョブを待機させるにはどうすればよいですか? Quartz プログラムを使用して FIFO ロジックをインプリメントし、ローダー ジョブへの作業を抑制する方法はありますか? また、すでに処理を待っているデータがある場合、コレクターが別のデータを取得することも望ましくありません。2) 2 つのスレッドのみでジョブを実行する方法はありますか? 一度に 2 つ以上のインスタンスをアクティブにする必要はありませんか? DB テーブルには、2 つのインスタンスのみを並行して実行するという制限があります。

4

2 に答える 2

0

ここには生産者と消費者の関係があるようです。通常、プロデューサーとコンシューマーはキューで区切られています。コレクターにアイテムを (永続的な?) キューに入れさせ、ローダーにキューから読み取らせ、最大 2 つの処理スレッドをディスパッチさせます。

于 2012-11-02T21:33:27.173 に答える