我有一台在启动期间正在运行liquibase升级的服务器。我们依靠内置的锁来防止并行运行的服务器的2个实例应用相同的更改。
问题是-如果我运行服务器并且在其工作期间重新启动,会发生什么。在这种情况下,锁不会释放。 我不能在启动过程中简单地在代码中运行“释放锁”逻辑,因为我不知道由于错误情况导致锁在那里,而不是简单地当前有另一台服务器正在运行锁。
有什么想法吗?
答案 0 :(得分:0)
您可以添加一些额外的逻辑,并根据锁定的时间进行操作。那是我唯一能想到的。如果历史记录显示所有更新花费的时间少于30分钟,并且锁已存在30分钟以上,请释放该锁。