【问题标题】:Using Cron job to activate a php script but it's not run completely使用 Cron 作业激活 php 脚本,但未完全运行
【发布时间】:2012-05-04 07:51:03
【问题描述】:

我正在使用 cronjob 来激活一个 php 脚本。虽然当我从浏览器手动执行此操作时,脚本需要 3-4 秒才能加载并将结果输出到数据库中。

当 cron 作业执行此操作时,似乎脚本无法在分配的时间内完成,并且 cronjob 中途停止加载脚本,cron 工作大约 1/10 时间,其余 9/10 倍未能完成任务。有没有办法可以确保每次 cron 作业激活脚本时都完全加载脚本?

脚本很简单,完全基于 php。有什么建议么?

【问题讨论】:

  • 如何运行脚本?你在使用 /usr/bin/php file.php 还是 wget localhost/file.php
  • 您介意放置您的 crontab 条目和您的 php 代码吗?
  • 我们需要查看脚本才能有所帮助。听起来像是权限/文件路径错误。你检查过错误日志吗?
  • 是的,这是我的 cronjob 条目 - */15 * * * * php public_html/......../script。 php(通过 cpanel)
  • 错误日志是空的,没有问题,我已经检查过了。抱歉,我有点犹豫在这里发布脚本代码,因为它是我工作的公司的大型专有代码。

标签: php cron


【解决方案1】:

我建议实施一个锁定文件(溢出保护)解决方案。基本上,当您的脚本启动时,它将检查锁定文件,如果锁定文件存在,则脚本可以假定先前的咒语仍在运行,因此它将停止执行。当脚本完成时,它会删除锁定文件,以便后续运行可以通过锁定文件检查并完整执行。

锁文件通常包含脚本生成的进程 ID,通常位于 /var/lock/my_script.lock 之类的位置。

您可以在 Google 上搜索更多信息,但这里有一个 site 和一个锁定文件示例。

【讨论】:

    猜你喜欢
    • 2020-02-28
    • 1970-01-01
    • 1970-01-01
    • 2013-03-16
    • 1970-01-01
    • 2018-06-11
    • 1970-01-01
    • 2014-03-07
    • 1970-01-01
    相关资源
    最近更新 更多