spring-boot - Spring Scheduler 在一天的不同时间运行
问题描述
我有一个要求,我的调度程序必须在每天上午 9 点到下午 12 点之间每小时运行一次,然后分别在下午 3 点和下午 5 点运行一次。
如何使我的 CRON 表达式根据要求工作到目前为止,我已经尝试使用以下 cron 表达式
@Scheduled(cron="0 0 9-12 * * *")
但这从上午 9 点到下午 12 点每小时运行一次我如何修改它以使其在下午 3 点和下午 5 点也运行一次。
我已经尝试通过组合两个如下所示的 cron 表达式,但是这很有效。
@Scheduled(cron="0 0 9-12 * * *, 0 0 3 * * *")
我可以通过 2 个 @Scheduled 给出 2 个 cron 表达式,如下所示
@Scheduled(cron="0 0 9-12 * * *")
@Scheduled(cron="0 0 9-12 * * *")
public void myMethod() {}
这会是一个可行的解决方案吗?
有人可以帮我吗?
解决方案
@Schedules 注解可用于设置多个基于日历的计时器表达式。
这个注解将摆脱多次编写同一个方法的冗余。
在以下示例中,第一个表达式将计时器设置为在每个月的最后一天到期。第二个表达式将计时器设置为每周五晚上 11:00 到期。
@Schedules ({
@Schedule(dayOfMonth="Last"),
@Schedule(dayOfWeek="Fri", hour="23")
})
public void doPeriodicCleanup() { ... }
推荐阅读
- laravel - 从 ajax 请求中保存 laravel_session cookie - 单点登录
- python-3.x - Python打印对齐的numpy数组
- macos - 具有 AutoLayout 约束的 NSScrollView 使窗口对调整大小和拖动无响应
- python-3.x - 尝试编译 python3 kivy 应用程序时出错
- android-studio - 如何将多个 externalNativeBuild 文件添加到 gradle?
- r - 从某个字符开始的正则表达式
- api - 无法在视图中显示来自 API 请求的数据
- spring-data-jpa - java.lang.AssertionError:JSON 路径“$[0].sAcctDesc”处没有值
- android - 在现有的 ios/android 应用程序中嵌入反应原生应用程序
- r - stackObjects 函数如何对检测到的对象进行排序