Quartz API:即使安排好以后,也会立即调用Job

时间:2014-06-13 12:34:08

标签: java quartz-scheduler

我正在创建一个JobDetail,如下所示,

JobDetail job = JobBuilder.newJob(MyJob.class).withIdentity(queryId).usingJobData("ExecutionDelay",1).build();

我希望它在1小时后首次运行。

相同的触发器如下,

Trigger trigger = TriggerBuilder.newTrigger().withSchedule(SimpleScheduleBuilder.simpleSchedule().withIntervalInHours(1)).build();

但是,当我在一个类中创建上述代码的多个线程时,就会立即触发一些作业的作业。

不确定是什么问题。可以帮助一些人。

1 个答案:

答案 0 :(得分:0)

这很可能是因为您在创建触发器时未设置start time。如果没有明确设置开始时间,则假定当前时间(新的Date()),然后根据您的触发器的失火指令(默认为SMART_POLICY)和时间,可能会立即触发作业。

要解决此问题,您需要将触发器的开始时间设置为“新日期()+ 1小时”。