0

我有一个 PHP 脚本,可以拉下一堆 RSS 提要。为了防止发布者的服务器超载,我使用 PHP 睡眠功能来减慢速度。

整个脚本可能会持续几个小时。

如果我从 GoDaddy 上的 Cron 作业运行它,它会愉快地工作 5 到 10 分钟,然后返回服务器错误。我查了一下,PHP 的最大执行时间是 30 秒,所以我不确定这是否是问题的原因。

如果我在我的 Mac 上运行该作业,我的本地 PHP 的默认最大执行时间也为 30 秒,但如果我从终端运行该脚本,它确实有效,但我不明白为什么。

如何循环超过 30 秒的脚本而不会遇到不可靠性问题?

帮助表示赞赏。

4

1 回答 1

2

简短的回答是用于set_time_limit(0)允许长时间运行的脚本。您的终端 (CLI) PHP 可能已将其设置为 0。您也可能内存不足,尤其是在 PHP 5.2 或更早版本上。将所有错误记录到一个文件中,然后检查它。

您可以重写您的程序,以便能够在一次运行期间处理数据的子集。这种方法的好处是您可以使用它来运行 24/7 或每五分钟运行一次,这取决于 PHP 环境支持什么。您还可以一次运行多个实例,每个实例都处理自己的数据。

于 2012-07-07T21:01:33.967 回答