繁体   English   中英

Unix Cron Jobs工作算法

[英]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个选择:

  1. 降低cron频率-确保作业完成
  2. 使用锁以防止作业在运行时执行。

我们通常使用选项2,只需将锁​​定标志写入数据库或文件系统-脚本完成后将其清除。

暂无
暂无

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

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