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