使用memcache作为锁服务器
memcachelock的Python项目详细描述
使用memcache作为锁服务器的python模块。
免责声明:此代码的灵感来自于unimr.memcachedlock。我想我可以 编写一个更简单的memcachedrlock类,以使依赖关系最小化 (python内置加上python memcache),并强制支持get/cas api。
警告:到目前为止还没有做什么测试。更好的回顾和强调 在任何地方使用之前。
示例用法: 导入memcachelock 导入memcache #如果没有cache-cas,python memcached无法正确执行cas mc=memcache.Client(['127.0.0.1:11211'],cache_cas=True) #不可重入锁 mc Lock=memcachelock.Lock(mc,'foo_resource') #每个连接可重入锁 mc RLock=memcachelock.RLock(mc,'foo_resource') #每个连接和每个线程可重入锁 rmcrlock=memcachelock.ThreadRLock(mc,'foo_resource')
所有锁实例都具有与thread.locktype(与python相同)相同的api 2.7条)。 “foo_resource”是任何可用作memcache键的字符串,用于标识 此锁保护的资源。在Zope世界中,它可能是一个可遍历对象的 路径,或数据库标识符加上某些数据库范围内的唯一标识符…