Cron命令每60秒运行php脚本,然后重载所有内容


Cron command run php script every 60 seconds and then overload everything

我有任务在cron:每3小时运行php脚本。

我也尝试过WGET和PHP,但也遇到了同样的问题。有时脚本工作超过2分钟,但大多数情况下30秒就足够了。如果执行时间超过60秒,它将被丢弃(504 get away)并再次运行此脚本。然后一次又一次。几小时内致命超载

我尝试了大量不同的语法,但是失败了:

  • php -q/var/www/webmy/data/www/website.com/news.php

  • /usr/bin/wget - o - - q - t 1 http://website.com/news.php

我如何管理命令只有1尝试运行我的脚本?我不需要它每60秒运行一百万次。有限制吗?

也许我可以限制/删除执行时间为20秒,以防止任何不适当的脚本运行。我只需要运行脚本,我不需要系统等待任何时间,脚本以任何方式完成任务

可以直接在php脚本中设置set_time_limit ( int $seconds );的最大执行时间点击这里查看更多信息

首先,wget的建议是一个不好的建议。如果要使用PHP脚本执行cron任务,最好将其作为命令行脚本运行,从而直接运行而不是通过web服务器

假设你不依赖服务器信息或GET/POST变量在你的脚本:你有没有试过运行它一次手动?你这么做时有什么奇怪的事发生吗?

像下面这样一个简单的crontab条目将每三个小时运行一次脚本:

* */3 * * * php /path/to/script.php

如果你想保证避免两个脚本同时运行,你应该使用某种类型的锁定,例如最简单的文件锁定,flock