[英]Unix Cron Jobs Working Algorithm
如果每分钟设置的cron作业正在执行一个耗时超过1分钟的文件,那么Unix内核会做什么。
例如:
我有以下Shell命令可以每分钟执行一次PHP脚本。
* * * * * php /home/user/public_html/script.php
My PHP脚本包含SQL代码,用于从数据库中选择电子邮件,并使用for循环将电子邮件发送到给定的电子邮件。
问题:如果我的数据库包含成千上万的邮件,并且需要花费超过一分钟的时间来完成第一次执行,那么系统内核将如何响应。
它将再次执行它,除非您自己采取措施防止多个实例运行。 您可以通过运行以下脚本来对其进行测试:
date >> /tmp/a
sleep 90
date >> /tmp/a
您有2个选择:
我们通常使用选项2,只需将锁定标志写入数据库或文件系统-脚本完成后将其清除。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.