2012-01-24 6 views
8

私は次のような状況があります。5.クォーツスケジューラの最大スレッド数のプロパティ

org.quartz.threadPool.threadCountセットで実行するようにスケジュール

8タスクをしかし、現実には、私はすべての8つのタスクが実行されていることがわかります。

これはどのように可能ですか?

org.quartz.threadPool.threadCount=5を設定して、クォーツ用に10個のタスクを提出した場合、5個のタスクしか並行して実行されないのは本当ですか?

org.quartz.threadPool.threadCountの意味はなんですか?

は、私は、このようなデザインがあります。

  1. を我々は
  2. 我々は一つのタスクを実行し、特別なJobRunnerを持ってデシベルに実体上のいくつかの作業を行ういくつかのタスクを持っている我々は、実行するタスクとスケジュールタスクをスキャン
  3. org.quartz.threadPool.threadCountが5に設定されたSchedulerFactoryBeanで構成されたクォーツサービスで動作するために。
  4. スケジューラファクトリビーンのクォーツサービスでは5つのタスクが実行されているかどうかわかります。 n例外。これは本当ですか?

ありがとうございます。

+2

8つのジョブがすべて実行されていると言うと、それは 'スケジューラ 'という意味ですか? getCurrentlyExecutingJobs() 'は8つのジョブのリストを返しますか?または、すべてがSystem.outに出力を送信していますか?または何? –

+0

ストーリーの説明を編集しました。スケジューラのために8つのタスクをスケジュールし、threadCount = 2を設定した場合、2つのスレッドが8つのタスクをダイビングする時間とコンテキストを変更することはありませんか? – user253202

答えて

12

QUARTZのorg.quartz.threadPool.threadCountは、同時実行/並列実行の最大数にすぎません。あなたはTHREADCOUNTより大きいXジョブをスケジュールした場合、その後K = Xという意味

- THREADCOUNT
仕事が待っていますが、最大でが終了するTHREADCOUNTにためキューのいくつかの種類にジョブをミリ秒不発。

したがってスケジュールされたジョブの合計数(またはタスク)はです。キュー内の待機中のタスクの数+実行中のタスクの数実行タスクの数以下threadCountです。

+0

2つのジョブが同じスレッドを使用する可能性はありますか? –

関連する問題