gpt4 book ai didi

java - cron 表达式 : Run weekly on Tuesdays and Wednesdays starting NOW

转载 作者:行者123 更新时间:2023-12-02 01:38:49 25 4
gpt4 key购买 nike

我需要了解 Cron 知识的人的帮助。我正在尝试编写 Cron 表达式,该表达式应该每周运行一次,周二运行一次,如果今天是周二,则应立即在周三运行一次。我当前的解决方案是:

0 0 * * 2,3

此表达式在周二和周三的 00:00 运行 Cron。但如果今天是星期二,则不会运行,因为时间已经提前 00:00。如果我将时间设置为当前的小时和分钟,比如说 16:30,那么 Cron 将在周二开始,但周三也会在 16:30 开始。我想尽快开始所有接下来的 Сron Activity ,即周三 00:00

这个任务有可能解决吗?非常感谢您提供的帮助。

最佳答案

似乎您希望在每个星期二和星期三的午夜运行作业,并且还希望在应用程序在星期二或星期三启动时立即运行。不知道也从未听说过 cron 表达式可以处理“立即启动”行为。但您可以简单地使用 @PostConstruct 来实现它:

public class CronJob {

@PostConstruct
public void onStart() {
LocalDateTime now =LocalDateTime.now();
if(now.getDayOfWeek() == DayOfWeek.TUESDAY || now.getDayOfWeek() == DayOfWeek.WEDNESDAY ) {
if(!now.toLocalTime().equals(LocalTime.MIDNIGHT)) {
doJob();
}
}

}

@Scheduled(cron="0 0 * * 2,3")
public void onSchedule() {
doJob();
}

public void doJob(){
//do the job
}
}

关于java - cron 表达式 : Run weekly on Tuesdays and Wednesdays starting NOW,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54770235/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com