php - 如果 cron 未完成且下一次迭代到期,会发生什么情况

标签 php ubuntu laravel-5 cron

我知道我问的是一些问题,而不是与代码相关的问题,但在实现我的 cron 之前,我想确保我知道执行中会发生什么。

我有一个每 2 分钟发送 125 封电子邮件的 cron,我想知道是否发生了某些情况,并且在下一次迭代到期时 cron 尚未完成。

平均每 2 分钟发送 125 封电子邮件非常重要,我更喜欢一个能够确保尽可能清除积压邮件的解决方案。

非常感谢任何建议。

最佳答案

无论之前的执行是否完成/完成/失败,Cron 都会以指定的时间间隔触发您的进程。您必须在代码中编写一些逻辑来检查它的实例是否已经在运行。在shell脚本中,编写以下代码来检查“process.sh”实例是否正在运行。

    for pid in $(pidof -x process.sh); do
    if [ $pid != $$ ]; then
        echo "[$(date)] : process.sh : Process is already running with PID $pid"
        //do whatever logic u want to do here
    fi
    done

关于php - 如果 cron 未完成且下一次迭代到期,会发生什么情况,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49021930/

相关文章:

javascript - PHP多条记录插入

linux - 如何从 Linux 运行 shell 文件的位置获取路径?

linux - 使用容器名称从主机操作系统解析 docker 容器 IP

laravel - 调用未定义的方法Illuminate\Auth\GenericUser::save()

php - 如何获取资源集合中的分页链接 - Laravel 5.7.19

PHP,getenv() 忽略尾随空格

php - node.js 如何处理故意大的(和坏的)http 请求

php - 将文本区域中的行保存到数据库

linux - 替换 Linux 调度器

php - 如何从 URL 下载文件而不显示 Laravel 中的完整路径?