【发布时间】:2017-09-21 12:25:26
【问题描述】:
我在托管时遇到了非常奇怪的问题。 我有脚本,可以使用这样的 URL 触发它
https://mywebsite.com/script.php
我需要这个脚本在两天内执行一次。
所以我创建了 Cron 工作,就像我的托管服务提供商建议我的那样。
wget -O /dev/null -q 'https://mywebsite.com/script.php'
它使用 wget 因为脚本需要一些额外的脚本 - 所以我的托管服务提供商说我需要创建这样的任务。
它运行了大约一个月,但几周后我遇到了问题。 由于某种原因,当我通过在浏览器中打开 URI 来运行脚本时,我和我的托管服务提供商无法理解 - 脚本执行得很好(我知道这是因为电子邮件是在 4 个不同的执行步骤中发送的)。 但是当 Cron 执行这个脚本时,它会无限执行 - 所以我会继续多次收到电子邮件,直到我重命名脚本或删除它。
脚本执行时间约为 2-3 分钟。因此,当我从 URL 运行它并等待它完成时 - 我在屏幕上收到请求时间(60 秒)结束的错误。但我知道脚本在最后一步之前都可以正常执行。
有什么问题?
【问题讨论】:
-
设置
set_time_limit(60*10)并确保你的cron在出错后不会重试 -
听起来你的脚本没有结束,浏览器只是因为它达到最大执行时间而停止。你能展示你的代码吗?
-
所以当我从 URL 运行它并等待它完成时 - 我在屏幕上收到请求时间(60 秒)结束的错误,这意味着存在问题脚本。它只是因为请求超时而停止。所以你需要显示你的代码