java Quartz Scheduler cron 表达式每隔 30 分钟后一刻钟

Posted

技术标签:

【中文标题】java Quartz Scheduler cron 表达式每隔 30 分钟后一刻钟【英文标题】:java Quartz Scheduler cron expression for every after 30 minutes quarter past the hours 【发布时间】:2016-10-08 08:34:30 【问题描述】:

我知道如何通过使用以下 cron 表达式每 30 分钟运行一次作业:

0 0/30 * * * ?

它每 30 分钟运行一次作业,例如 ::

10:30, 11, 11:30, 12.

我想让它每隔 30 分钟后运行一次,例如::

10:15, 10:45, 11:15, 11:45.

如上所述,如何让它在每 30 分钟后运行一次?

更新 :: 我看到了那个链接。给定链接中所述的解决方案不起作用。它在一刻钟开始 cron 作业,但它每分钟都在运行,例如 15:15:00、15:15:01、15:15:02 .....

谢谢

【问题讨论】:

您是否需要作业在特定时间开始/结束/仅在特定日期运行等? 不是在任何特定时间/日期...就像我提到的..所有天..只想像 10:45、11:15 一样运行它...... . 而不是 10:30, 11. Run Cron job every N minutes plus offset的可能重复 【参考方案1】:

只需给它一个分钟值15,45

0 15,45 * * * ? *

参见 www.cronmaker.com

【讨论】:

谢谢,但它给出 RunTimeException 为:线程“main”中的异常 java.lang.RuntimeException: CronExpression '* 15,45 * * * * ?'无效。 更新了答案 它在 15:15:00、15:15:01、15:15:02 等每一分钟开始运行 cron 作业...... 怎么可能,第一个column0秒。【参考方案2】:

试试这个,15表示开始时间:

0 15/30 * * * ?

【讨论】:

它在 15:15:00、15:15:01、15:15:02 等每一分钟开始运行 cron 作业...... 【参考方案3】:

已经提供的答案的另一个变体是:

0 15-45/30 * * * ?

当使用CronMaker 进行测试时,我得到了以下结果(注意不同的开始时间):

由于您在使用其他 cron 表达式时遇到了一些问题,所以我用上面的方法安排了一个作业,它一直运行良好

【讨论】:

以上是关于java Quartz Scheduler cron 表达式每隔 30 分钟后一刻钟的主要内容,如果未能解决你的问题,请参考以下文章

Quartz

java Quartz Scheduler cron 表达式每隔 30 分钟后一刻钟

Java定时任务Quartz

1 Quartz开始

Quartz Scheduler作业在触发后连续运行

执行quartz报错java.lang.NoClassDefFoundError: javax/transaction/UserTransaction