我正在尝试创建一个每天上午10:00运行的石英作业,但首先在上午9:30开始。 我正在使用start time和cron表达式进行如下操作:
CronTrigger newTrigger = newTrigger().withIdentity(jobName + i, jobName)
.startAt(startTime).endAt(endTime).withSchedule(cronSchedule(cronExpression)
.withMisfireHandlingInstructionFireAndProceed().inTimeZone(timeZone)).build();
cron表达式是:
0 0 10 * * ?
但是工作在上午10点开始运行(并忽略开始时间)。如果我正在查看数据库中的qrtz_triggers
表,我看到start_time
确实是9:30但next_fire_time
是10:00。
我在这里做错了什么?
答案 0 :(得分:2)
开始和结束时间是cron计划处于活动状态的窗口。它们没有指定触发器触发的第一个和最后一个时间。
例如,开始时间为上午9:30和下午6:30结束的每小时开火的时间表将在此期间的小时开火。
在你的情况下,这是不相关的,因为你的cron时间表是每天上午10点,这是在开始和结束时间窗口内。
如果您想在每天上午9:30和上午10点开始工作,那么最简单的方法是创建两个同时调用相同工作的cron触发器。