繁体   English   中英

Cron追赶其他Cron

[英]Cron runs after other cron

我想设置一个cron运行在另一个cron之后。 例如:Cron A在01:00 PM结束,cron B将在01:01 PM开始。 问题是我不知道cron A何时完成。

我检查了crontab语法。 它没有为此提供任何参数。

我的实际情况是:

# This cron must run first.
? ? * * * /usr/local/bin/php -f /path/select_and_print_to_log_file.php

# two these crons runs at the same time.
0 13 * * * /usr/local/bin/php -f /path/update_user.php
0 13 * * * /usr/local/bin/php -f /path/update_image.php

# This cron runs right after two above cron completes.
? ? * * * /usr/local/bin/php -f /path/select_and_print_to_log_file.php

您可以在第一个cron中使用batch命令来安排第二件事运行。

在这种情况下(通常是不想通过并发备份来破坏磁盘的备份方案),我要做的是编写一个cron调用的脚本,并在脚本中使实际任务按顺序运行。

就像是:

#!/bin/bash

/usr/local/bin/php -f /path/update_user.php
/usr/local/bin/someOtherTaskToRunSecond

因人而异。

完成后,您的第一份工作可能会产生一个时间戳。

然后,您估计-例如-作业A需要大约60至90分钟。 60分钟后,您启动作业B。作业b查找时间戳记。 如果存在,则作业B开始,否则等待一分钟,然后再次查找。

完成后,作业B删除时间戳或将其重命名,也许从“待办事项”更改为“完成”。 您可以将当前日期插入文件中,以检查您的估算值是否仍然可以接受或应进行调整。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM