我们一直在我们的node.js服务器中使用议程,并对作业锁定机制如何在议程中起作用感到困惑。
如果我重新启动node.js服务器,所有锁定的作业都会解锁并正确执行。
为什么需要这种锁定机制?它有什么作用 ?
答案 0 :(得分:1)
运行作业时,数据库条目将自动设置lockedAt
时间戳,这可确保没有其他节点实例将运行相同的作业。意思是“嘿,我正在从事这份工作,不要碰它”
当另一个节点实例读取作业时,它将对照锁定时间戳记检查当前时间,如果少于10分钟,它将不会运行该作业。
这“ 10分钟”存储在议程全局配置或作业配置选项中,这两个选项均来自代码。您可以通过将defaultlocklifetimenumber设置为其他值来更改它。