首页 > 解决方案 > 如何在同一个springboot方法上设置两个cron?

问题描述

我想在 9:00 / 16:30 设置一个定时器。但是一个cron无法实现。所以我需要两个 cron 来实现它。玉米如下:

cron1: * 30 16 * * *
cron2: * * 9 * * *

我想像这样通过springboot @Schedule 设置cron

@Scheduled(cron = "0 0 2 * * ?")
public void sayHello(){}

但似乎不能在一个方法上支持两个@Scheduled 标签或在一个标签上支持两个cron。

这么低的方法如下,有没有更好的建议?</p>

@Scheduled(cron = "* 30 16 * * ?")
public void sayHello(){}

@Scheduled(cron = "* * 9 * * ?")
public void subSayHello(){sayHello();}

标签: spring-bootcronspring-scheduled

解决方案


我认为这很困难,因为不同的分钟和不同的小时,如果 cron 在相同的小时或分钟内运行,那就容易了。

如:

"*  0,30  9    * * ?"
"*  0     9,16 * * ?"

或者你可以看到这个链接Cron 表达式每天在不同时间运行两次作业?


推荐阅读