Java 如何在Quartz框架中以两小时为间隔,以分钟为单位安排作业

Java 如何在Quartz框架中以两小时为间隔,以分钟为单位安排作业,java,cron,scheduled-tasks,quartz,Java,Cron,Scheduled Tasks,Quartz,我正在开发基于石英框架的计划任务管理器。有时我需要按照这样的时间表运行作业,比如“在上午8:15到晚上23:59之间每隔两个小时”(8:15、10:15等)。我见过一些类似的问题,但在这种情况下,小时/分钟的值是已知的。在我的例子中,我通过API获得它,并且必须自动运行任务。您可以使用此表达式 0 15 8-23?*** 每天上午8点到晚上23点之间的每小时第二点、第15分钟 参见时间执行示例: Fri Aug 16 14:15:00 UTC 2019 Fri Aug 16 15:15:00 U

我正在开发基于石英框架的计划任务管理器。有时我需要按照这样的时间表运行作业,比如“在上午8:15到晚上23:59之间每隔两个小时”(8:15、10:15等)。我见过一些类似的问题,但在这种情况下,小时/分钟的值是已知的。在我的例子中,我通过API获得它,并且必须自动运行任务。

您可以使用此表达式

0 15 8-23?***

每天上午8点到晚上23点之间的每小时第二点、第15分钟

参见时间执行示例:

Fri Aug 16 14:15:00 UTC 2019
Fri Aug 16 15:15:00 UTC 2019
Fri Aug 16 16:15:00 UTC 2019
Fri Aug 16 17:15:00 UTC 2019
Fri Aug 16 18:15:00 UTC 2019
Fri Aug 16 19:15:00 UTC 2019
Fri Aug 16 20:15:00 UTC 2019
Fri Aug 16 21:15:00 UTC 2019

我使用这个工具创建了这个表达式和示例。

您可以使用这个表达式

0 15 8-23?***

每天上午8点到晚上23点之间的每小时第二点、第15分钟

参见时间执行示例:

Fri Aug 16 14:15:00 UTC 2019
Fri Aug 16 15:15:00 UTC 2019
Fri Aug 16 16:15:00 UTC 2019
Fri Aug 16 17:15:00 UTC 2019
Fri Aug 16 18:15:00 UTC 2019
Fri Aug 16 19:15:00 UTC 2019
Fri Aug 16 20:15:00 UTC 2019
Fri Aug 16 21:15:00 UTC 2019

我使用工具创建了这个表达式和示例。

基于@elbraulio的答案:如问题中所述,每两小时修改一次,将模式修改为:

0 15 8-23/2 ? * * *
将执行日期描述为:

Fri Aug 16 16:15:00 UTC 2019
Fri Aug 16 18:15:00 UTC 2019
Fri Aug 16 20:15:00 UTC 2019
Fri Aug 16 22:15:00 UTC 2019
Sat Aug 17 08:15:00 UTC 2019
Sat Aug 17 10:15:00 UTC 2019
Sat Aug 17 12:15:00 UTC 2019
Sat Aug 17 14:15:00 UTC 2019

请参见。

根据@elbraulio的答案构建:如问题所述,每两小时修改一次,将模式修改为:

0 15 8-23/2 ? * * *
将执行日期描述为:

Fri Aug 16 16:15:00 UTC 2019
Fri Aug 16 18:15:00 UTC 2019
Fri Aug 16 20:15:00 UTC 2019
Fri Aug 16 22:15:00 UTC 2019
Sat Aug 17 08:15:00 UTC 2019
Sat Aug 17 10:15:00 UTC 2019
Sat Aug 17 12:15:00 UTC 2019
Sat Aug 17 14:15:00 UTC 2019

请参见。

请解释。请解释。在这种情况下-是的,但是如果时间表是“8:45到10:15之间每两小时”怎么办?那么这种模式就不相关了。@alextheloafer:我不明白你最近的评论。你能详细说明一下吗?在这种情况下-是的,但是如果时间表是“在8:45到10:15之间每两小时”怎么办?那么这种模式就不相关了。@alextheloafer:我不明白你最近的评论。你能详细说明一下吗?