spring-boot - SpringBoot Scheduler Cron 过度运行
问题描述
有没有专家在使用 springboot 调度程序时遇到问题
试图将它设置为在工作日的下午 2 点到晚上 10 点之间运行,每隔 15 分钟/每小时运行一次,但它似乎是按分钟触发的,是因为我的 cron 错误还是我应该做 smthg 来控制它?
通过 springboot-web-started 在 linux 服务器中运行
@Scheduled(cron = "0 15 14-22 * * MON-FRI")
private void fireDownload() {
log.info("fireDownload");
this.jmsXXXX.run(Constants.XXXX);
}
版本
spring-boot 2.4.2 java 11
解决方案
请试试这个
@Scheduled(cron = "0 */15 14-22 * * MON-FRI")
你在评论中说这不起作用,所以让我们用一个简单的概念验证来测试它,每 5 分钟触发一次
@Scheduled(cron = "0 */5 8-22 * * MON-FRI")
private void cronPOC() {
log.info("cronPOC triggered by cron");
}
下面的屏幕截图显示 POC 确实在工作。
当我们在测试时,让我们将上面评论中的@GerbenJongerius 建议也放到测试中(为了加快速度,进行了一些微小的更改)。
@Scheduled(cron = "0 0/5 8-22 ? * MON-FRI")
private void cronPOC() {
log.info("cronPOC triggered by cron v2");
}
一些带有解释的 Spring cron 示例: https ://stackoverflow.com/a/26147143/14072498
推荐阅读
- c# - 将CSV转换为Datatable时如何避免指数格式
- c# - C#在继续之前等待线程完成
- python - Get child class name inside super class in Python
- javascript - 如何访问和使用 do while 循环的返回值?
- actionscript-3 - Adobe Flash cs6 动作脚本 3
- linux - Grep:与 -e 和 -o 选项一起使用
- java - Android:将房间数据库链接和同步到在线服务器数据库
- java - 如何进入 SimpleDateFormat
- sql - 在共享 FK 的一组数据中选择最新的行集
- java - 从 GKE 连接到 Google Cloud SQL 数据库的方式比较