我有一个服务器在启动时运行liquibase升级。我们依靠内置的锁来防止2个并行运行的服务器实例应用相同的更改。
问题是-如果我运行我的服务器并在其工作期间重启,会发生什么情况。在这种情况下,锁没有被释放。我不能在启动期间简单地在代码中运行“释放锁”逻辑,因为我不能知道锁是由于错误情况而存在的,而不是简单地知道另一个服务器当前正在运行锁。
有什么想法吗?
发布于 2019-08-19 01:30:03
你可以添加一些额外的逻辑,并根据它被锁定的时间来做一些事情。这是我唯一能想到的。如果历史记录显示您的所有更新时间都小于30分钟,并且锁在那里的时间超过30分钟,则释放锁。
https://stackoverflow.com/questions/57544246
复制相似问题