2017-06-19 6 views
0

私のアプリケーションは、ジョブをただちに終了した後、2回同じスケジューラをトリガします。この動作は一貫していません。クォーツ:何度か実行されるシングルスレッド

クォーツの設定の詳細:

org.quartz.threadPool.class=org.quartz.simpl.SimpleThreadPool 
org.quartz.threadPool.threadCount=1 
org.quartz.threadPool.threadPriority=5 
org.quartz.scheduler.skipUpdateCheck=true 
org.quartz.jobStore.class=org.quartz.impl.jdbcjobstore.JobStoreTX 

トリガー:

 SCHED_NAME, TRIGGER_NAME,  TRIGGER_GROUP,  CRON_EXPRESSION, TIME_ZONE_ID 
    ocscheduler  AusNzlJobTrigger DEFAULT   0 0 17 ? * SUN-THU * Australia/Melbourne 
    ocscheduler  UKJobTrigger  DEFAULT   0 0 22 ? * SUN-THU * Europe/London 
    ocscheduler  AmericaJobTrigger DEFAULT   0 0 20 ? * SUN-THU * America/New_York 

すべてのボディは、同じ問題が発生した場合は、この問題を解決するために私を助けてください。 私は根本的な原因を見つけるのが難しく、時には同じ仕事が2回実行されることもあります。

+0

なぜ3つのトリガーがありますか? – Ravi

+0

トリガーごとに処理方法が異なります。 –

+0

こんにちはMadhusudhan Kg、あなたがこの質問を投稿してから1ヶ月以上が経過しており、私はそれに答えました。私の答えが助けになることがわかったら、それを受け入れたものとして投票するのがいいでしょう(投票矢印の下の小切手)。ありがとう! – walen

答えて

0

ジョブが同時に実行されない場合(@DisallowConcurrentExecutionなどのメカニズムを使用している場合)、スケジュールされた時間間隔(たとえば、ニューヨークのトリガーが5時間以上かかる)よりも時間がかかる場合は、あなたの設定に応じて、トリガーの1つが同じ日に2回発砲する可能性がある場所で失火が発生する可能性があります.1回は昨日の失火の実行、もう1回は今日の予定の実行です。

ベアもそれを念頭に置いて:メルボルンのタイムゾーンで

17時00 07:00 UTCです。
ニューヨークのタイムゾーンの22:00は02:00 UTCです。
20:00ロンドンのタイムゾーンは19:00 UTCです。

とにかく、トリガーのスケジューリングのコードを含めるといいですね。

関連する問題