0
私はJMSキューで作業しています。キューのサイズを監視し、キューにメッセージがなければ電子メールを送信するのが私の要件です。 Cronjobジョブはキューを監視し、キュー内の最初のメッセージでトリガーされます。以下は、ジョブをトリガーするコードです。キュー内の最初のメッセージで開始Hybris cronjob - 実行していない場合はcronジョブを開始します
CronJobModel CronJobModel = new CronJobModel();
CronJobModel.setCode("Job1");
CronJobModel = flexibleSearchService
.getModelByExample(CronJobModel);
modelService.save(CronJobModel);
LOG.debug(" Check and start job");
if (!cronJobService.isRunning(CronJobModel)) {
LOG.info("Job initiated on first message in the Queue. ");
cronJobService.performCronJob(CronJobModel);
LOG.info("Job status::" + cronJobService.isRunning(CronJobModel));
}
コンソール出力
仕事。
ジョブの状態::偽
その結果、ジョブが複数回起動されます。なぜcronjobが始動していないとすぐに実行状態に変更?ジョブがトリガーされたことを識別し、再度トリガーしないようにするためのより良い方法はありますか?