Cha*_*lie 16 cron spring spring-data-rest spring-boot
我正在尝试在Spring安排一项每天午夜运行的任务.我按照Spring 的官方指南编写了调度程序类,如下所示:
@Component
public class OverduePaymentScheduler {
@Scheduled(cron = "0 0 0 * * *")
public void trackOverduePayments() {
System.out.println("Scheduled task running");
}
}
Run Code Online (Sandbox Code Playgroud)
但是,当时钟到达12点时,任务不会运行.我在此链接中获得了石英调度程序文档中的cron表达式.
如果我将cron表达式更改为每10秒运行一次的"*/10*****",则调度程序执行正常.
那么我做错了什么?
Rzv*_*van 37
这些是cron表达式的有效格式:
0 0 * * * * =每天每小时的最高点.*/10 * * * * * =每十秒钟.0 0 8-10 * * * 每天8点,9点和10点.0 0 6,19 * * * 每天早上6:00和晚上7:00.0 0/30 8-10 * * * 每天= 8:00,8:30,9:00,9:30,10:00和10:30.0 0 9-17 * * MON-FRI =工作日的九点到五点0 0 0 25 12 ? =每个圣诞节午夜模式是:
second, minute, hour, day, month, weekday
Run Code Online (Sandbox Code Playgroud)
所以你的答案是:
0 0 0 * * *
Run Code Online (Sandbox Code Playgroud)
Cha*_*lie 14
我终于使用了这个cron表达式,0 0 0 * * *但是我必须像这样设置调度程序类中的时区.
@Scheduled(cron = "0 0 0 * * *",zone = "Indian/Maldives")
Aji*_*man 13
请在每天上午12:00使用以下cron模式:
// at 12:00 AM every day
@Scheduled(cron="0 0 0 * * ?")
Run Code Online (Sandbox Code Playgroud)
我在这个网站上检查了你的cron模式:http://www.cronmaker.com/.
它说模式0 0 0 * * *无效.
对于 spring 5.3 或更高版本的用户,我们有一个更简单的方法来定义 crons
| 宏 | 意义 |
|---|---|
@yearly (or @annually) |
每年一次 (0 0 0 1 1 *) |
@monthly |
每月一次 (0 0 0 1 * *) |
@weekly |
每周一次 (0 0 0 * * 0) |
@daily (or @midnight) |
每天一次 (0 0 0 * * *) |
@hourly |
每小时一次,(0 0 * * * *) |
参考:https ://spring.io/blog/2020/11/10/new-in-spring-5-3-improved-cron-expressions
| 归档时间: |
|
| 查看次数: |
45425 次 |
| 最近记录: |