0

指定したタイム ゾーンに従って cron ジョブをスケジュールしたい。最初は正常に起動しますが、次回は指定されたタイム ゾーンに従って起動するのではなく、システムの時間に従って起動します。

Trigger trigger = TriggerBuilder.newTrigger().withDescription(jobPojo.getDescription()).withIdentity(jobPojo.getTriggerName(), jobPojo.getTriggerGroup())
                        .withSchedule(CronScheduleBuilder.cronSchedule(jobPojo.getExpression().trim()).inTimeZone(TimeZone.getTimeZone(jobPojo.getTimeZone())).withMisfireHandlingInstructionIgnoreMisfires()).usingJobData(jobDataMap).forJob(jobKey).build();

// json pojo でタイムゾーンを渡しているので、例: jobPojo.getTimeZone() ="GMT+4:00" これはドバイのタイムゾーン Id です。私のシステムはインドで稼働しています。以下は私のフェッチコードです:

SimpleDateFormat dateFormat = new SimpleDateFormat("dd/MM/yyyy HH:mm:ss");
Trigger trigger = scheduler.getTrigger(triggerKey);
jobPojo.setNextFireTime(dateFormat.format(trigger.getNextFireTime()));

事前に感謝..

4

0 に答える 0