问题描述
每月执行一次的任务是否需要设置值LockAtMostFor和LockAtMostFor,执行时间为几分钟,有多个节点在运行服务。将值暴露给他人的正确性如何
lockAtLeastFor = "PT1H" lockAtMostFor = "15m"
?
解决方法
如果您希望任务只由一个节点运行,则需要添加 lockAtLeastFor 和 lockAtMostFor 。
lockAtLeastFor : 应该是你的任务完成所取的值。
lockAtMostFor : 应该是 lockAtLeastFor + 一些缓冲时间。
如果 lockAtLeastFor 太小,那么相同的任务可以被其他节点拾取。(作业将在多个节点中运行,而不是在一个节点中)
如果 lockAtMostFor 未设置或设置为高值并且您的节点在获取锁后死亡
没有其他节点可以获取锁。
您不必设置 lockAtLeastFor
。另一方面,必须设置 lockAtMostFor
以防执行 taks 的节点死亡。在那之后,锁会自动释放。