九月 20th, 2018 by lanxinxichen@126.com

前段时间需要做定时备份数据,考虑到因为数据备份周期可能比较长,害怕并行任务可能导致重复备份,浪费带宽。最开始想到的是quartz not repeat,但是引入这个就太麻烦了,折中想到了采用flock判断进程是否正在进行中,如果没有启动就重新启动一次。

flock + crontab

* * * * * flock -xn /tmp/flock.lock -c “启动程序。”

如果有多个不同的程序,需要修改/tmp/flock.lock输出到不同的位置。

程序解释:每分钟检测一次,如果目标进程正在启动(文件独占锁锁正在被占用),则直接返回,如果检测到程序没有启动(文件锁没有占用),则启动一次程序。

这样就完成了一个简单的守护进程功能,守护检测间隔是1分钟/次,对实时性要求不是那么高的话足矣。

 

Posted in 服务器 Tagged with: ,