Spring 调度程序根据一天中的时间固定延迟

Spring scheduler fixed delay based on time of day

全部,

有没有一种方法可以使用 spring 调度程序来根据一天中的时间更改 fixedRate?

例如:一个方法应该 运行 10-12am 的速率为 1000ms 然后在凌晨12点后切换到5000ms

或者我是否必须使用不同的 crons 创建多个方法?

使用 @Scheduled,试试这个:

@Component
public class ScheduledConfiguration {
    
    @Scheduled(cron = "* * 10-11 * * ?")
    @Scheduled(cron = "0/5 * 0-9,12-23 * * ?")
    public void execScheduledTask() {
        System.out.println("Now: " + new Date());
    }
    
}

您需要使用两个 cron 配置:

* * 10-11 * * ?: 每秒,每分钟,如果今天的小时部分是 10 或 11,则每天,每月,每周的每一天。

0/5 * 0-9,12-23 * * ?: 每 5 秒从 0 秒开始,每分钟,如果今天的小时部分介于 0 和 9 之间或介于 12 和 23 之间,则每天、每月、每周的每一天

查看更多相关信息here and here