quartzの使用中の気まずい問題
1326 ワード
ところで、私は1つの任務をしたいのですが、毎晩の1:30分に実行します.次のコードは故障していますか.
長い間見ても問題が見えなかったり、ここに問題があることに気づかなかったりします.しかし、実行中にパチパチと何度も走って、合併の問題だと思っていたので、関連資料をたくさん探しました.
1.jobクラスに注記@DisallowConcurrentExecutionを追加
2.アプリケーション.义齿quartz.jobstore.acquireTriggerWithinLock=true
3.JobDetailFactoryBeanの中のjobDetail.setConcurrent(false);とっくに追加されています
予想通りの結果には至らなかった
偶然振り返ってcronのルールを見てみると、秒位は*では使えないことに気づきました.そうしないと、1:30分の1分で触発が止まらないことを示しています.実は、1分後には任務が入っていません.正しい書き方はこうすべきだ
実は前にlinuxでcrontabを設定する習慣と少し関係があり、crontabには秒位がなく、ある時間にトリガーして時間と分を設定すればいいので、秒も設定する必要があることに気づかなかった.
@Bean(name = "jobTrigger")
public CronTriggerFactoryBean cronJobTrigger(JobDetail jobDetail){
CronTriggerFactoryBean trigger = new CronTriggerFactoryBean();
trigger.setJobDetail(jobDetail);
trigger.setCronExpression("* 30 1 * * ?");
trigger.setName("cal-ushimata");
return trigger;
}
長い間見ても問題が見えなかったり、ここに問題があることに気づかなかったりします.しかし、実行中にパチパチと何度も走って、合併の問題だと思っていたので、関連資料をたくさん探しました.
1.jobクラスに注記@DisallowConcurrentExecutionを追加
2.アプリケーション.义齿quartz.jobstore.acquireTriggerWithinLock=true
3.JobDetailFactoryBeanの中のjobDetail.setConcurrent(false);とっくに追加されています
予想通りの結果には至らなかった
偶然振り返ってcronのルールを見てみると、秒位は*では使えないことに気づきました.そうしないと、1:30分の1分で触発が止まらないことを示しています.実は、1分後には任務が入っていません.正しい書き方はこうすべきだ
@Bean(name = "jobTrigger")
public CronTriggerFactoryBean cronJobTrigger(JobDetail jobDetail){
CronTriggerFactoryBean trigger = new CronTriggerFactoryBean();
trigger.setJobDetail(jobDetail);
trigger.setCronExpression("0 30 1 * * ?");
trigger.setName("cal-ushimata");
return trigger;
}
実は前にlinuxでcrontabを設定する習慣と少し関係があり、crontabには秒位がなく、ある時間にトリガーして時間と分を設定すればいいので、秒も設定する必要があることに気づかなかった.