国产探花免费观看_亚洲丰满少妇自慰呻吟_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ā)表
主站蜘蛛池模板: 枞阳县| 广宁县| 许昌县| 布尔津县| 穆棱市| 濉溪县| 额敏县| 江门市| 德令哈市| 靖江市| 洪洞县| 三河市| 南华县| 大兴区| 越西县| 厦门市| 太康县| 正镶白旗| 三门峡市| 漳州市| 磴口县| 莒南县| 从化市| 嘉兴市| 繁峙县| 广安市| 肇东市| 桦甸市| 高邮市| 璧山县| 民勤县| 永春县| 福安市| 阳信县| 霍邱县| 弋阳县| 大渡口区| 巢湖市| 水城县| 临城县| 曲麻莱县|