如果当前的工作没有完成,Cron会开始一份新工作吗?

Sei*_*tem 26 concurrency cron

可能重复:
如果cron作业已在运行,如何阻止cron作业执行

我的cron工作可能需要2分钟,或者可能需要5个小时才能完成.我需要确保始终执行此作业.

我的问题是:

如果我将它设置为每分钟执行一次,它会在上一个完成之后启动还是同时运行并弄乱数据库?

ern*_*nie 44

它们会在同一时间运行.围绕此操作的标准做法是创建文件锁(通常称为flock),如果锁不可用,请不要运行.

与Zdenek的方法相比,它的优势在于它不需要数据库,并且当过程结束时,flock会自动释放.这包括进程被终止,服务器重启等情况.

虽然你没有提到你的cron作业是什么,但flock是大多数语言的标准.我建议谷歌搜索锁和你正在使用的语言,因为这将是更强大的解决方案,而不是依赖于随机超时.以下是SO的一些示例:

  • 我会选择这个答案. (4认同)

Rob*_*Rob 13

它们都会同时运行.


归档时间:

查看次数:

22990 次

最近记录:

7 年,10 月 前