Cron表达式(Quartz)用于在每天午夜12点运行程序。

40

在Quartz Scheduler中,如何设置cron表达式使程序每个格林威治标准时间午夜12点运行?

我以前没有使用过Quartz,所以还在学习。

表达式是0 0 0 * * ?还是0 0 12 * * ?呢?0 0 12 * * ?是用于下午12点(正午)吗?请有经验的人告诉我。

3个回答

92

25
<Minute> <Hour> <Day_of_the_Month> <Month_of_the_Year> <Day_of_the_Week>

下面的图表展示了它的组成:

* * * * * *
| | | | | | 
| | | | | +-- Year              (range: 1900-3000)
| | | | +---- Day of the Week   (range: 1-7, 1 standing for Monday)
| | | +------ Month of the Year (range: 1-12)
| | +-------- Day of the Month  (range: 1-31)
| +---------- Hour              (range: 0-23)
+------------ Minute            (range: 0-59)

程序每天午夜12点运行的Cron表达式:

0 0 0 1/1 * ? *

一个极好的网站,可以轻松创建自己的Cron表达式,即使对Cron表达式的知识不多也没关系:Cron Maker

它会帮助您构建自己的cron表达式,并显示下一个触发时间,就像这样。

1.  Wednesday, July 6, 2016 12:00 AM
2.  Thursday, July 7, 2016 12:00 AM
3.  Friday, July 8, 2016 12:00 AM
4.  Saturday, July 9, 2016 12:00 AM
5.  Sunday, July 10, 2016 12:00 AM .....

2
该表达式有7个字段...它不是一个有效的cron表达式。 - Araymer
请在Cron Maker上检查它是否有效,@Araymer。 - Divyesh Kanzariya
我刚把它放到一个项目中,使用@Scheduled(cron = "0 0 0 1/1 * ? *")时出现了异常。 - Araymer
它已经在我的Spring项目上运行。@Araymer,你的问题是7个字段是“秒”,请参见http://www.quartz-scheduler.org/documentation/quartz-2.x/tutorials/tutorial-lesson-06。 - Divyesh Kanzariya
很有趣。我收到了一个异常,说我有太多的字段...你使用的是哪个版本的Spring/Spring Boot? - Araymer
Spring 4.2 @Araymer 使用 XML - Divyesh Kanzariya

1
程序每天午夜12点运行的Cron表达式应为0 0 0 * * *。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接