在多台服务器上运行多个计划任务时,Shedlock 看起来很棒,但有时,我们也需要短时间或长时间地暂停一些任务。当然,可以使用附加属性/标志来控制每个任务,但我的建议是也为此使用 Shedlock,并为我们希望停止的任务引入逻辑“节点/服务器”,并更新 shedlock 中的行- 锁定该节点的表,并在未来设置一个lockedAt 时间,并将lockUntil 设置为future + 1 秒(因此不会触发超过maxRunning 的时间)。然后它会自动重新开始,或者如果需要,我们可以进入并将时间移到更远的未来。
对 Shedlock 的这种使用有什么想法……聪明还是坏习惯?它仍然用于锁定,只是将作业锁定到逻辑假服务器。