【发布时间】:2016-02-13 11:56:38
【问题描述】:
Quartz 调度程序在我启动时不会触发我的工作。我的工作安排为每小时。但是在启动我的调度程序后,我的第一份工作在一个小时后被触发。我是石英的新手。下面是我的石英启动代码
JobKey feedWSClient = new JobKey("feedWSClient", "feed-validator");
JobDetail feedWSJob = JobBuilder.newJob(this).withIdentity(feedWSClient).build();
Trigger feedWSCListenerTrigger = TriggerBuilder.newTrigger()
.withIdentity("feedWSCListenerTrigger","feed-validator")
.withSchedule(CronScheduleBuilder.cronSchedule("0 0/59 * * * ?")).build();
Scheduler scheduler = new StdSchedulerFactory().getScheduler();
scheduler.scheduleJob(feedWSJob,feedWSCListenerTrigger);
scheduler.start();
【问题讨论】:
-
您的 cron 字符串的意思是“在午夜的第 0 分钟和每 59 小时执行一次”(这没有意义)。我认为您应该将第二个字段更改为
*。 -
谢谢,但是给定的玉米表达式应该每小时执行一次,没有问题,只是在启动调度程序时它不会启动。你有什么想法吗?
-
这是不正确的(应该是
0 * * * * ?),但也许它只是忽略了你的第二个字段,因为它没有意义。无论如何,它明确表示从每小时的第 0 分钟开始。它与您启动调度程序的时间无关,仅与时钟有关。 -
idk,它实际上对我有用。例如,如果我更改它 0 0/1 * * * ?每分钟触发一次作业。我刚试过。也许我会再看看它。
标签: java quartz-scheduler