除了 python-redis-lock 模块为锁对象提供上下文管理器 - 与您从 redispy 模块获得的锁对象相比,有什么区别?python-redis-lock 有什么特别之处?rc = Redis.from_url(settings.BROKER_URL)
lock_str = "bld-%s-lock" % bld_id使用重新分配:lock = rc.lock(lock_str)使用 python-redis-lock:lock = redis_lock.Lock(rc, lock_str)
1 回答
喵喵时光机
TA贡献1846条经验 获得超7个赞
我认为上下文管理器不是这里的主要区别,因为如果您看到 redis-py Lock 的代码,它们会在__enter__
其中__exit__
添加和。
两个 Lock 似乎都使用 SETNX 来获取锁:
我在那里看到的主要区别是阻塞线程的工作方式。
就像是:
timed_out = not self._client.blpop(self._signal, blpop_timeout) and timeout
就像是:
import time as mod_time
...
stop_trying_at = mod_time.time() + blocking_timeout
...
mod_time.sleep(sleep)
添加回答
举报
0/150
提交
取消