扫码关注官方订阅号
linux下启动一个定时任务,间隔执行某个脚本,但是这个脚本可能会持续较长时间,时间不定。
另外,这个脚本可以可能通过后台管理界面手动触发。
问题来了,怎么防止儿任务重复执行?就是说当新的任务到来的时候,需要把老的停止掉。
如何实现?
业精于勤,荒于嬉;行成于思,毁于随。
通常 linux 的 init 脚本在启动一个程序的时候都会生成一个 pid 文件,用来存储程序的 pid,方便停止程序的时候的 kill操作。
同样的,你的定时任务脚本也可以生成一个 pid 文件,在任务完成的时候删除这个文件。任务开始的时候判断这个文件在不在,如果在,说明之前的任务没有结束,你可以选择退出,或者kill。
微信扫码关注PHP中文网服务号
QQ扫码加入技术交流群
扫描下载App
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号
PHP学习
技术支持
返回顶部
通常 linux 的 init 脚本在启动一个程序的时候都会生成一个 pid 文件,用来存储程序的 pid,方便停止程序的时候的 kill操作。
同样的,你的定时任务脚本也可以生成一个 pid 文件,在任务完成的时候删除这个文件。任务开始的时候判断这个文件在不在,如果在,说明之前的任务没有结束,你可以选择退出,或者kill。