我想根据指定的时区安排 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()));
提前谢谢..