Unix Cron Jobs工作算法

时间:2014-03-04 20:02:48

标签: php unix cron

如果每分钟设置的cron作业正在执行一个花费时间超过1分钟的文件,Unix内核会怎么做。

例如:

我有以下Shell命令每分钟执行一次PHP脚本。

* * * * * php /home/user/public_html/script.php

我的PHP脚本包含SQL代码,用于从数据库中选择电子邮件,并使用for循环将邮件发送到给定的电子邮件。

问题:如果我的数据库包含数千封完成第一次执行需要1分钟以上的邮件,系统内核将如何响应。

2 个答案:

答案 0 :(得分:3)

它将再次执行它,除非您自己采取措施阻止运行多个实例。您可以通过运行以下脚本来测试它:

date >> /tmp/a
sleep 90
date >> /tmp/a

答案 1 :(得分:0)

您有两个选择:

  1. 降低cron频率 - 确保作业完成
  2. 使用锁定来阻止作业在运行时执行。
  3. 我们经常使用选项二,只需向数据库或文件系统写一个锁定标志 - 然后在脚本完成后清除它。