2011-08-02 10 views
8

いつでも1つのスレッドで長い処理ジョブを実行するようにクォーツを構成できるかどうか疑問に思っていました。言い換えれば、サイズ5のSimpleThreadPoolで構成された石英があるとします.10秒ごとに起動するジョブがありますが、状況によっては10秒以上かかることがあります。クォーツトリガ/ジョブ/スケジューラを設定して、このトリガがすでに別のスレッドの実行状態になっているため再起動しないようにする方法はありますか?トリガが再び発生すると、プールの別のスレッドがそれを受け取って、同じジョブの2つのインスタンスを同時に実行します。あなたのご意見ありがとうございます。複数の石英スレッドがある場合に、1つのスレッドでのみクォーツを実行する

明確化:(サイズ1のスレッドプールの使用に関する提案のため)。必要なのは、スレッドプールを5つのスレッドで構成し、任意の時点で単一のスレッドでのみ実行する単一のジョブを持つことです。言い換えれば、ジョブのインスタンスは1つのスレッドのみで実行する必要があります。

+0

プールサイズを1にするとどうなりますか? – fmucar

答えて

20

で、単一の石英ワーカースレッドがあります

org.quartz.threadPool.threadCount=1 

を設定し、ジョブクラスはStatefulJobを実装します。 Quartz 2.xを使用している場合は、@DisallowConcurrentExecutionアノテーションをジョブクラスに追加してください。

1

あなたはクォーツの1.1を使用している場合は、時間

関連する問題