我使用mysql作为分布式锁定机制。它的工作相当不错,但我有一个非常小的比赛条件,我从来没有击中,但我很好奇,如果我有其他选择,以避免它。
当前在我的代码中,我调用get\u lock,然后紧接着调用is\u used\u lock来获取持有锁的连接的id。这是必要的,这样我就可以看到它的变化和信号发生其他事情。然而,我似乎有可能调用get\u lock get the lock,然后在调用is\u used\u lock之前的几毫秒内丢失它。
我是否有任何选项可以自动调用get\u lock并获取锁id?
更新:
我不知道 SELECT GET_LOCK('test/lock', 10), IS_USED_LOCK('test/lock');
是可能的,但不确定这是否在内部是原子的。
暂无答案!
目前还没有任何答案,快来回答吧!