Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angularjs/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
让cron在重新启动之前等待作业完成_Cron_Crontab - Fatal编程技术网

让cron在重新启动之前等待作业完成

让cron在重新启动之前等待作业完成,cron,crontab,Cron,Crontab,我有一个cronjob,它每秒钟执行一次,通常在几秒钟内运行,但有时会持续几分钟 如果下一分钟到来时命令已经运行,我需要cron不要执行该命令 这条线看起来像这样 */1****cmd 我试过这个 *****ID=job1 FREQ=1m AFTER=job1 cmd 但是没有成功 是否可以使用cron解决问题,或者我必须实现锁定?您可以创建一个名为inProgress(或其他)的临时文件,并将其存储在一个标准位置,并使用该文件与下一个作业进行通信(如果它应该运行或不运行) 如果工作流程如下所示

我有一个cronjob,它每秒钟执行一次,通常在几秒钟内运行,但有时会持续几分钟

如果下一分钟到来时命令已经运行,我需要cron不要执行该命令

这条线看起来像这样 */1****cmd

我试过这个 *****ID=job1 FREQ=1m AFTER=job1 cmd

但是没有成功


是否可以使用cron解决问题,或者我必须实现锁定?

您可以创建一个名为inProgress(或其他)的临时文件,并将其存储在一个标准位置,并使用该文件与下一个作业进行通信(如果它应该运行或不运行)

如果工作流程如下所示:

  • 检查标准进程 文件
  • 如果存在,请退出
  • 否则,创建inProgress文件
  • 工作
  • 删除进程文件

  • 锁定是实现这一点的一种方法,或者您可以使用类似于Cron的程序,称为Fat控制器,我创建的Fat控制器正是为了解决这个问题

    您可以设置脚本的一个实例结束和另一个实例开始之间的等待间隔,而不是每x分钟运行一次

    您甚至可以更进一步,使用退出代码告诉Fat控制器不要等待并立即再次运行脚本,例如,如果处理数量有限的项目的脚本知道它在结束时还有更多的处理要做。这是处理批处理的好方法

    网站上有更多的用例和示例: