每5周(35天)执行一次Quartz cron表达式
对此没有直接的解决方案。
以下解决方案将帮助您:
创建石英下面的cron作业,使* _JOB_DETAILS表job_data列数据作为一个火情时间毫秒。
It will run every week(You can make this every day also).
0 0 12 ? * MON *
石英作业将每周(星期一上午12:00)调用java应用程序。在您的业务逻辑检查job_data与当前时间。如果超过了执行你的逻辑,否则什么也不做。在执行完逻辑更新JOB_DATA之后,下一个触发时间将存储在job_data中。
Calendar c=new GregorianCalendar();
c.add(Calendar.DATE, 35);
c.getTime();//add this data
你会得到预期的结果。
这将在每个月不是每35天。 – TomJava
毫无意义地写出这样的表达式(它不起作用),请尝试使用http://www.quartz-scheduler.org/documentation/quartz-2.x/tutorials/tutorial-lesson-05.html而不是cron表达式,它不适合这种类型的工作。
正如Puchacz所指出的,cron表达式不适合这些类型的调度。您应该使用CalendarIntervalTrigger以星期重复间隔单位和5重复间隔。在代码方面,在Quartz中使用cron和日历间隔触发器几乎没有区别。
请参阅以下有关CalendarIntervalTrigger的示例日程安排,该日程安排触发器将于2017年11月1日午夜开始启动。通过更改开始时间,您可以调整希望开展工作的时间。
你是什么意思“从一个特定的日子”?你能举一些例子吗? – LHCHIN
你能查看这个\t 0 0 12 1/35 *? * 您可以使用http://www.cronmaker.com/ –
生成您的cron,让它从一个月的第一天起 – TomJava