是否需要设置 LockAtMostFor 和 LockAtLeastFor?

问题描述

每月执行一次的任务是否需要设置值LockAtMostFor和LockAtMostFor,执行时间为几分钟,有多个节点在运行服务。将值暴露给他人的正确性如何 lockAtLeastFor = "PT1H" lockAtMostFor = "15m" ?

解决方法

如果您希望任务只由一个节点运行,则需要添加 lockAtLeastFor 和 lockAtMostFor 。

lockAtLeastFor : 应该是你的任务完成所取的值。

lockAtMostFor : 应该是 lockAtLeastFor + 一些缓冲时间。

如果 lockAtLeastFor 太小,那么相同的任务可以被其他节点拾取。(作业将在多个节点中运行,而不是在一个节点中)

如果 lockAtMostFor 未设置或设置为高值并且您的节点在获取锁后死亡
没有其他节点可以获取锁。

,

您不必设置 lockAtLeastFor。另一方面,必须设置 lockAtMostFor 以防执行 taks 的节点死亡。在那之后,锁会自动释放。

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...