我在cron中执行任务:每3个小时运行一次php脚本。
我也尝试过使用WGET和PHP,但遇到了同样的问题。有时脚本的工作时间超过2分钟,但大多数时间足够30秒。如果执行时间超过60秒,它将被丢弃(504 getway)并且cron再次运行此脚本。然后一次又一次。几个小时内致命的超负荷。
我尝试了大量不同的语法,但失败了:
php -q /var/www/webmy/data/www/website.com/news.php
/ usr / bin / wget -O - -q -t 1 {{3}}
如何只用1次尝试运行我的脚本来管理命令?我不需要每60秒运行数百万次。任何限制?
也许我可以将执行时间限制/减少到20秒,以防止任何不适当的脚本运行。我只需要运行脚本,我不需要系统随时等待,脚本以任何方式完成任务。
答案 0 :(得分:0)
您可以使用set_time_limit ( int $seconds );
直接在php脚本中设置最长执行时间
查看更多here
答案 1 :(得分:0)
首先,wget
建议不好。如果您要将PHP脚本用于cron任务,最好将其作为命令行脚本运行,从而直接运行它并且不通过Web服务器运行。
假设您不依赖脚本中的服务器信息或GET / POST变量:您是否尝试过手动运行它?你这样做有什么奇怪的事吗?
如下所示的简单crontab条目将每三个小时运行一次脚本:
* */3 * * * php /path/to/script.php
答案 2 :(得分:0)
如果您希望保证避免同时运行两个脚本,则应使用某种锁定,例如:使用flock
进行最简单的文件锁定