spring - Spring @Scheduled,如何一次运行一次(非同时)
问题描述
我有一个@Scheduled
带注释cron
的方法宽度*/15 * * * * ?
(每 15 秒运行一次)。
有时,此过程需要超过 15 秒才能运行。
有什么方法可以避免调用@Scheduled
if 它已经在运行?
我目前的解决方法是在类中使用一个标志字段来指示进程是否正在运行,如果它被标记,则代码在执行主代码之前退出。
解决方案
我想已经是这样了,如果第一个工作还没有完成,第二个就不会开始。
请参阅: 如何防止 Spring 中的计划重叠?
如果它不起作用,您还可以使用 AtomicBoolean 来检查您是否必须启动该过程。
推荐阅读
- git - git checkout 注释标签行为
- c# - 单击共享的 OneNote 分区组链接时显示 OneDrive 目录列表
- docker - /usr/bin/ 是否被授权为 docker prefrences 中卷共享的默认位置?
- laravel - Laravel - 如何在 PHPUnit 测试中使用 faker?
- c++ - 超出列时,clang-format 强制每个参数/参数拥有自己的行?
- python - 使用 go-serial 从 arduino 的串口读取
- email - 从 Erlang 发送邮件 - OTP 应用程序或操作系统应用程序
- java - 查询C3P0开始获取的连接数
- firebase - 在 Firestore 中一次按数组项和其他字段查询
- android - Firestore 嵌套获取使用回调在初始调用时获取空结果