0
我有两个尝试通过redis.lock(...).acquire()
获取租约的进程。我希望一个失败,一个去工作。但是,有些情况下,两者都声称已成功获得锁定。Python redis.client锁不起作用
这是怎么回事?
我有两个尝试通过redis.lock(...).acquire()
获取租约的进程。我希望一个失败,一个去工作。但是,有些情况下,两者都声称已成功获得锁定。Python redis.client锁不起作用
这是怎么回事?
2.8.0之前的版本中存在一个错误(修复于this commit),其中int(time.time())
与setnx
一起使用。这允许多个进程在同一秒内调用锁,并相信他们赢了。
查看更改日志here。