我有一个不常见的自定义站点地图生成器cron脚本,我需要在当前位于HostGator共享服务器上的站点上运行。生成器脚本是用PHP编写的,并使用以下cron命令执行:
php public_html / mysite.com / core / update.php> Update.log中
生成过程涉及调用内部API并根据结果进行距离计算,因此脚本通常需要5-10分钟才能运行。 HostGator的共享服务器的硬编码PHP运行时限制为30秒。
有什么方法可以让我的脚本分解成更小的进程?有没有人知道将它转码为Perl或Python是否会达到30秒的限制?
答案 0 :(得分:2)
把这个
set_time_limit(30);
在代码花费大部分时间的函数或循环中应该可以解决问题。
答案 1 :(得分:1)
你可以尝试分叉。您需要确保每个fork都可以执行它的工作并在30秒内创建一个新的fork。由于fork是正在运行的进程的副本,因此您保留了迄今为止所提取的所有数据。
或者,使用multi-curl立即使用多个请求来爆破服务器,并在30秒内完成整个过程。当然,你需要适当地划分工作。