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

时间:2016-10-27 17:13:26

标签: php time cron limit execution

我在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秒,以防止任何不适当的脚本运行。我只需要运行脚本,我不需要系统随时等待,脚本以任何方式完成任务。

3 个答案:

答案 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

进行最简单的文件锁定