分布式锁
设定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": passdef 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))