RedisLock¶
- class deepfos.lib.redis.RedisLock(key, redis_client=None, renew_interval=5, expire_sec=10, raises=None, blocking_timeout=0)¶
通过Redis实现的锁对象
- 参数
提示
使用
with
获取锁时,如果获取失败,将直接报错。 使用aquire
获取时,将返回bool
类型,表示是否获取成功。示例
with RedisLock('locked_key_a'): do_something() lock = RedisLock('locked_key_b') if lock.aquire(): try: do_something() finally: lock.release()
- Exclude-members
通过Redis实现的锁对象
- Args:
redis_client: Redis对象 key: 锁名 renew_interval: 刷新有效时间间隔,默认为5秒 expire_sec: 有效时间,默认为10秒,需大于刷新间隔,否则刷新无效 raises: 获取锁失败时抛出的错误,仅使用with时有效 blocking_timeout: 获取锁的等待时间,默认为0,即不等待,为None时等待至获取到为止
- Notes:
使用
with
获取锁时,如果获取失败,将直接报错。 使用aquire
获取时,将返回bool
类型,表示是否获取成功。示例
with RedisLock('locked_key_a'): do_something() lock = RedisLock('locked_key_b') if lock.aquire(): try: do_something() finally: lock.release()