cron 定时任务小技巧 进程锁与超时
cron 定时任务小技巧 进程锁与超时
如果本文的内容仅限于此类小菜,那么未免有些太对不起各位看官,下面上一道硬菜:设置一个 PHP 脚本,每分钟执行一次,怎么搞?听起来这分明就是一道送分题啊:
|
|
让我们设想如下情况:假如上一分钟的 A 请求还没退出,下一分钟的 B 请求也启动了,就会导致出现 AB 同时请求的情况,如何避免?答案是 flock,它实现了锁机制:
|
|
让我们再来重放一下故障场景:假如上一分钟的 A 请求还没退出,下一分钟的 B 请求也启动了,那么 B 请求会发现 A 请求还没有释放锁,于是它不会执行。
看起来似乎完美解决了问题,不过让我们在加入一点特殊情况:假如因为某些无法预知的原因,导致脚本不能正常结束请求,进而导致不能正常释放锁,那么后续所有其它的 CD 等请求也都无法执行了,如何避免?答案是 timeout,它实现了超时控制机制:
|
|
- 原文链接:https://typonotes.com/posts/2016/12/16/cron-tips-lock-timeout/
- 本文为原创文章,转载注明出处。
- 欢迎 扫码关注公众号
Go与云原生
或 订阅网站 https://typonotes.com/ 。 - 第一时间看后续精彩文章。觉得好的话,请猛击文章右下角「在看」,感谢支持。