84669 人学习
152542 人学习
20005 人学习
5487 人学习
7821 人学习
359900 人学习
3350 人学习
180660 人学习
48569 人学习
18603 人学习
40936 人学习
1549 人学习
1183 人学习
32909 人学习
程序每次都去数据库读取10个run_status=0的数据,
当一个任务执行的时候,数据库更新字段
run_status=-1
表示这个任务被锁定了。
当然任务执行结束之后,run_status=0,表示已经被解除锁定。
现在问题来了。当执行任务时,因为某种异常,比如发布的时候服务器突然中断程序,这时候,run_status=-1永远都在锁定状态了。但是实际上并没有在执行中。
现在你需要设计一个机制,防止这种情况的发生,你会如何做?目前环境可以使用redis。
业精于勤,荒于嬉;行成于思,毁于随。
我发现这个问题太简单了。设置一个key,过期时间为60秒即可。每次检测这个key是否存在
我发现这个问题太简单了。设置一个key,过期时间为60秒即可。每次检测这个key是否存在