Spring cron表达式,每天上午1:01。

6 浏览
0 Comments

Spring cron表达式,每天上午1:01。

我试图根据Spring cron表达式在固定的时间表上执行我的代码。我希望每天在凌晨1:01执行代码。我尝试以下表达式,但它没有启动。这里的语法哪里有问题?

@Scheduled(cron = "0 1 1 ? * *")
public void resetCache() {
    // ...
}

admin 更改状态以发布 2023年5月20日
0
0 Comments

对于我的调度程序,我将其设置为每天早上6点触发,我的cron表达式如下:

0 0 6 * * *

如果你想要1:01:am则将其设置为:

0 1 1 * * *

完整的调度程序代码如下:

@Scheduled(cron="0 1 1 * * *")
public void doScheduledWork() {
    //complete scheduled work
}

** 非常重要

为了确保你的调度程序的触发时间正确,请设置时区值,例如(我在伊斯坦布尔):

@Scheduled(cron="0 1 1 * * *", zone="Europe/Istanbul")
public void doScheduledWork() {
    //complete scheduled work
}

你可以从 这里找到完整的时区值。

注意:我的Spring框架版本是:4.0.7.RELEASE

0
0 Comments

试试以下操作:

@Scheduled(cron = "0 1 1 * * ?")

在下面,您可以找到来自Spring论坛的示例模式:

* "0 0 * * * *" = the top of every hour of every day.
* "*/10 * * * * *" = every ten seconds.
* "0 0 8-10 * * *" = 8, 9 and 10 o'clock of every day.
* "0 0 8,10 * * *" = 8 and 10 o'clock of every day.
* "0 0/30 8-10 * * *" = 8:00, 8:30, 9:00, 9:30 and 10 o'clock every day.
* "0 0 9-17 * * MON-FRI" = on the hour nine-to-five weekdays
* "0 0 0 25 12 ?" = every Christmas Day at midnight

cron表达式由六个字段表示:

second, minute, hour, day of month, month, day(s) of week

(*) 表示匹配任何值

*/X 表示“每个 X”

? (“无特定值”) - 在其中一个允许该字符的两个字段中指定某些内容,但另一个字段不允许时非常有用。例如,如果我想让我的触发器在特定的月份的某一天(比如说10号)触发,但我不在意这是一周的哪一天,我会将“10”放在当月的字段中,将“?”放在星期几的字段中。

PS:为了使其工作,请记得在应用程序上下文中启用它:https://docs.spring.io/spring/docs/3.2.x/spring-framework-reference/html/scheduling.html#scheduling-annotation-support

0