首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Cron在其他cron之后运行

Cron在其他cron之后运行
EN

Stack Overflow用户
提问于 2012-01-19 13:55:01
回答 3查看 1.2K关注 0票数 2

我想让一个cron在另一个cron之后运行。例如: Cron A在下午01:00结束,cron B在下午01:01开始问题是我不知道cron A什么时候结束。

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

我的实际情况是:

代码语言:javascript
复制
# 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
EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2012-01-19 15:39:59

您的第一个作业可能会在完成时生成一个时间戳。

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

完成后,作业B删除时间戳,或将其重命名,可能从“todo”改为“done”。您可以在文件中插入当前日期,以检查您的估计是否仍然可接受,或者是否应该进行调整。

票数 1
EN

Stack Overflow用户

发布于 2012-01-19 14:05:40

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

票数 2
EN

Stack Overflow用户

发布于 2012-01-19 13:58:49

在这种情况下(通常是备份场景,我不想因为有并发备份而导致磁盘崩溃),我会编写一个执行cron调用的脚本,并在脚本中让实际任务串行运行。

类似于:

代码语言:javascript
复制
#!/bin/bash

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

YMMV.

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/8921659

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档