redis python lock 锁

#codng=utf-8
"""
@des: timeout 和 blocking_timeout的区别
timeout -----------如果with代码段里面的执行时间超过了 timeout,那么就释放锁
blocking_timeout---如果在blocking_timeout内没有获取到锁,那么就根据逻辑判断是否执行其他,看haha1
"""

def haha1():
   from django.core.cache import cache
   import time
   r = cache.raw_client
   mylock = r.lock("123", blocking_timeout=10)
   getlock = mylock.acquire()
   if getlock: 
        print "getlock"
        r.hset('a',1,1000)
        time.sleep(20)
        mylock.release()
   print "end"
   
   
def haha():
   from django.core.cache import cache
   import time
   r = cache.raw_client
   with r.lock("123"):
        print "getlock"
        r.hset('a',1,1000)
        time.sleep(20)
   print "end"

分享到: 微信 更多