分布式锁
设定work_test方法为分布式锁,定时50秒内不可重复
def t_work(self):
info = "每月定时任务"
global evn
flag = is_run("work"+evn, 50, "work"+evn, info)
if flag == "run":
print("work"+"跑了一次")
work("?")
if flag == "running":
pass
def is_run(key, time, data, info):
s = select_0_M()
value = s.set_nx_true(key, data, time, info)
if value == 1 :
return "run"
if value == 0:
return "running"
class select_0_M():
# 分布式锁
def set_nx_true(self, key, value, time, info):
try:
data = myRedis.set(key, value, ex=time, nx=True,)
return data
except Exception as e:
logger.error(info+'缓存数据设置失败,' + str(e))