我正在使用 cronjob 来激活 php 脚本。虽然当我从浏览器手动执行此操作时,脚本需要 3-4 秒才能加载并将结果输出到数据库中。
当 cron 作业执行此操作时,似乎脚本无法在分配的时间内完成,并且 cronjob 中途停止加载脚本,cron 工作大约 1/10 的时间,其余 9/10 次无法完成任务。有没有办法可以确保每次 cron 作业激活脚本时都完全加载脚本?
脚本很简单,完全基于 php。有什么建议么?
我建议实施一个锁定文件(溢出保护)解决方案。基本上,当您的脚本启动时,它将检查锁定文件,如果锁定文件存在,则脚本可以假定先前的咒语仍在运行,因此它将停止执行。当脚本完成时,它将删除锁定文件,以便后续运行可以通过锁定文件检查并完整执行。
锁定文件通常包含由脚本生成的进程 ID,通常位于 /var/lock/my_script.lock 之类的位置。
您可以搜索更多信息,但这里有一个带有锁定文件示例的站点。