链接cron脚本以获得大约30秒的运行时间限制


Chaining cron scripts to get around 30-second runtime limit

我有一个不常见的自定义站点地图生成器cron脚本,我需要在当前位于HostGator共享服务器上的站点上运行。生成器脚本是用PHP编写的,并使用以下cron命令执行:

php public_html/mysite.com/core/update.php>update.log

生成过程包括调用内部API并根据结果进行距离计算,因此脚本通常需要5-10分钟才能运行。HostGator共享服务器的硬编码PHP运行时限制为30秒。

有什么方法可以让我的脚本分解成更小的过程吗?有人知道把它转换成Perl还是Python会超过30秒的限制吗?

放置此

set_time_limit(30);

在一个函数或循环中,你的代码大部分时间都花在这个函数或循环里。

您可以尝试分叉。你需要确保每个叉子都能完成它的工作,并在30秒内创建一个新的叉子。由于fork是正在运行的进程的副本,因此您可以保留迄今为止提取的所有数据。

或者,使用multi-ccurl一次向服务器发送许多请求,并在30秒内完成整个过程。当然,你需要适当地分配工作。