每5周(35天)执行一次Quartz cron表达式

每5周(35天)执行一次Quartz cron表达式

问题描述:

我试图弄清楚5周内执行一次的cron表达式,即从特定日期开始的35天。我找不到直接使用石英的解决方案。每5周(35天)执行一次Quartz cron表达式

LINK HERE

有人能指教?

+0

你是什么意思“从一个特定的日子”?你能举一些例子吗? – LHCHIN

+0

你能查看这个\t 0 0 12 1/35 *? * 您可以使用http://www.cronmaker.com/ –

+0

生成您的cron,让它从一个月的第一天起 – TomJava

对此没有直接的解决方案。

以下解决方案将帮助您:

创建石英下面的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 

你会得到预期的结果。

+0

这将在每个月不是每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日午夜开始启动。通过更改开始时间,您可以调整希望开展工作的时间。

[Sample CalendarIntervalTrigger

+0

你有一些基于该示例程序的链接? – TomJava

+0

为什么不使用Google并搜索CalendarIntervalTrigger示例或示例。第二个链接(https://www.programcreek.com/java-api-examples/index.php?api=org.quartz.CalendarIntervalTrigger)可用。 –

+0

谢谢!但是我无法涉及这段代码的编写方式。 – TomJava