我需要在一周内运行一次特定程序,一个月一次,偶尔运行一次
CronTrigger trigger = newTrigger()
.withIdentity("trigger1", "group1")
.withSchedule(cronSchedule("0/20 * * * * ?"))
.build();
应该在上面的代码中完成所有更改?特别是在这部分("0/20 * * * * ?"
))
请帮忙
答案 0 :(得分:2)
您需要根据用户的选择在多个时间表之间切换:
// Once a month (the first day at midnight)
0 0 0 1 * ?
// Once a week (Sunday at midnight)
0 0 0 * * 1
// On a specific date (November 10, 2012)
0 0 0 10 11 ? 2012
如果要更改时间,您当然可以将零更改为其他值。请参阅完整指南here。
答案 1 :(得分:0)
如果您不想使用cron表达式,您可以使用Quartz的内置功能来构建触发器,但我仍然认为cron表达式总是很小,如果您对它们感到满意,那么总是要走的路< / p>
trigger=newTrigger().withIdentity(cronTriggerDTO.getTiggerId(), "simpleGroup")
.startAt(date).withSchedule(calendarIntervalSchedule()
.withIntervalInWeeks(weekly interval in int)).build();
trigger=newTrigger().withIdentity(cronTriggerDTO.getTiggerId(), "simpleGroup")
.startAt(date).withSchedule(monthlyOnDayAndHourAndMinute(DAY_OF_MONTH, HOUR_OF_DAY,MINUTE))
.build();
trigger=newTrigger().withIdentity(cronTriggerDTO.getTiggerId(),"simpleGroup")
.startAt(date).forJob("myjob", "mygroup").build();