如果每分钟设置的cron作业正在执行一个花费时间超过1分钟的文件,Unix内核会怎么做。
例如:
我有以下Shell命令每分钟执行一次PHP脚本。
* * * * * php /home/user/public_html/script.php
我的PHP脚本包含SQL代码,用于从数据库中选择电子邮件,并使用for循环将邮件发送到给定的电子邮件。
问题:如果我的数据库包含数千封完成第一次执行需要1分钟以上的邮件,系统内核将如何响应。
答案 0 :(得分:3)
它将再次执行它,除非您自己采取措施阻止运行多个实例。您可以通过运行以下脚本来测试它:
date >> /tmp/a
sleep 90
date >> /tmp/a
答案 1 :(得分:0)
您有两个选择:
我们经常使用选项二,只需向数据库或文件系统写一个锁定标志 - 然后在脚本完成后清除它。