国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > Python > 正文

Python實現(xiàn)的redis分布式鎖功能示例

2020-02-15 21:33:35
字體:
供稿:網(wǎng)友

本文實例講述了Python實現(xiàn)的redis分布式鎖功能。分享給大家供大家參考,具體如下:

#!/usr/bin/env python# coding=utf-8import timeimport redisclass RedisLock(object):  def __init__(self, key):    self.rdcon = redis.Redis(host='', port=6379, password="", db=1)    self._lock = 0    self.lock_key = "%s_dynamic_test" % key  @staticmethod  def get_lock(cls, timeout=10):    while cls._lock != 1:      timestamp = time.time() + timeout + 1      cls._lock = cls.rdcon.setnx(cls.lock_key, timestamp)      if cls._lock == 1 or (time.time() > cls.rdcon.get(cls.lock_key) and time.time() > cls.rdcon.getset(cls.lock_key, timestamp)):        print "get lock"        break      else:        time.sleep(0.3)  @staticmethod  def release(cls):    if time.time() < cls.rdcon.get(cls.lock_key):      print "release lock"      cls.rdcon.delete(cls.lock_key)def deco(cls):  def _deco(func):    def __deco(*args, **kwargs):      print "before %s called [%s]."%(func.__name__, cls)      cls.get_lock(cls)      try:        return func(*args, **kwargs)      finally:        cls.release(cls)    return __deco  return _deco@deco(RedisLock("112233"))def myfunc():  print "myfunc() called."  time.sleep(20)if __name__ == "__main__":  myfunc()

更多關(guān)于Python相關(guān)內(nèi)容感興趣的讀者可查看本站專題:《Python常見數(shù)據(jù)庫操作技巧匯總》、《Python編碼操作技巧總結(jié)》、《Python數(shù)據(jù)結(jié)構(gòu)與算法教程》、《Python Socket編程技巧總結(jié)》、《Python函數(shù)使用技巧總結(jié)》、《Python字符串操作技巧匯總》、《Python入門與進階經(jīng)典教程》及《Python文件與目錄操作技巧匯總》

希望本文所述對大家Python程序設(shè)計有所幫助。

發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 三江| 泗洪县| 焉耆| 芷江| 定日县| 乐昌市| 藁城市| 武鸣县| 读书| 同德县| 榆中县| 关岭| 宁强县| 天水市| 南木林县| 雅安市| 乐昌市| 乌苏市| 蕉岭县| 洪江市| 即墨市| 龙南县| 兴文县| 古田县| 竹山县| 德钦县| 桃园市| 连平县| 明水县| 峡江县| 博湖县| 望奎县| 北安市| 汝南县| 临海市| 车致| 海盐县| 靖安县| 民县| 衡南县| 天全县|