java - Quartz Scheduler集群:有没有办法唯一地运行SAME作业并延迟下一次触发直到同一个作业完成
问题描述
我已经用一个 jdbcstore 实现了 Quartz Scheduler 集群。
我有一个工作 QzJob1,它是每两分钟安排一次的 CRON。但作业运行总执行时间为 3 分钟。
我知道节点将根据可用的触发时间来获取作业。
所以让我们说,QzJob1 于上午 10:00 在 NODE1 中运行,但它在上午 10:03 完成。现在对于同一个作业,触发器在上午 10:02 可用,它被另一个节点 NODE2 拾取。这是我知道的默认行为。
现在我的问题是。有没有办法让这个在所有节点上都是唯一的,这样在该作业完成之前它不会再次被触发,尽管触发器在完成之前已经准备好。
我试图找出它,但无法到达任何地方。因此,请指导/指导/指向我,以便我将其推进。
感谢帮助。
解决方案
您需要使用 @DisallowConcurrentExecution 注释来注释您的作业实现类。有关详细信息,请参阅https://www.quartz-scheduler.org/api/2.1.7/org/quartz/DisallowConcurrentExecution.html。
推荐阅读
- c# - 连接到 FTPS - 找不到请求的对象
- haskell - 如何为 Mu 递归类型编写 Show 实例
- jquery - 如何在遍历数组时添加 JSON 对象
- javascript - 如何识别大型数组中的重复项?
- javascript - 无法从开放天气 api 访问 JSON
- hybris - Hybris 店面中产品代码和名称的自动建议搜索关键字
- ionic3 - 离子离线应用同步
- java - Android 应用程序在模拟器上运行良好,但在真实设备上却不行
- javascript - 通过 onClick 选择语言
- javascript - React Native - setState 在传递数据时未定义