我想利用 spring cron 注释在每天三个不同的会话中的特定时间间隔内每分钟运行一次特定服务。例如:第一节:上午 8:15 - 下午 12:36,第二节:中午 12:40 - 下午 3:11,第三节:下午 3:20 - 下午 4:35。如何为这个特定示例设置 cron 表达式?我已经在 Oracle 文档中检查过这个,这是我遇到的最接近的实现"0 0/5 14,18 * * ? 从下午 2:00 开始到下午 2:55 结束,每 5 分钟触发一次,从下午 6:00 开始到下午 6:55 结束,每 5 分钟触发一次,每天“不同时间和不同会话之间的间隔没有实例@Scheduled(cron = "0 29-35 11,12 * * ?") public static void testCron() { DateFormat dateFormat = new SimpleDateFormat("yyyy/MM/dd HH:mm:ss"); Date date = new Date(); System.out.println("testing cron per minute " + dateFormat.format(date)); }从上面的测试代码来看,它会在 11:29 和 11:35 之间打印评论,但不会在 11:35 之后打印评论。下一个打印输出是从 12:29 开始,依此类推。
2 回答
千万里不及你
TA贡献1784条经验 获得超9个赞
为此,您可以使用多个@Scheduled注释来注释您的方法,同时提高议程的可读性和丰富性。
@Scheduled(cron = "0 15-36 8-12 * * ?")
@Scheduled(cron = "0 40-11 12-15 * * ?")
@Scheduled(cron = "0 20-35 15-16 * * ?")
public static void testCron() {
DateFormat dateFormat = new SimpleDateFormat("yyyy/MM/dd HH:mm:ss");
Date date = new Date();
System.out.println("testing cron per minute " + dateFormat.format(date)); }
天涯尽头无女友
TA贡献1831条经验 获得超9个赞
您可以使用以下表达式:
@Scheduled(cron = "0 1-2 * * * *", fixedRate = 5000)
具有此表达式的方法从 01:00 到 02:00 每 5 分钟运行一次。修改此表达式并将其用于两种不同的方法。每个人都应该调用您的 testCron 方法
添加回答
举报
0/150
提交
取消