XML Fetcher Cron作业:运行频率和提取次数?

时间:2009-01-04 19:13:06

标签: php cron

我在共享的虚拟主机上有一个PHP脚本,可以选择从过去半小时内未更新的大约300个“馈送”,发出cURL请求,然后将其发送给用户。

SELECT * FROM table WHERE latest_scan < NOW() - INTERVAL 30 MINUTE ORDER BY latest_scan ASC LIMIT 0, 40;
// Make cURL request and process it

我希望能够以尽可能快的提供更新,但又不想让我的服务器或我正在提取的服务器陷入困境(它只是少数几个)。

我应该多久运行一次cron作业,我应该限制每次运行的提取次数吗?要多少?

2 个答案:

答案 0 :(得分:1)

对每个Feed实际更改的频率进行“评分”会是一件好事,所以如果每次更改的平均时间为24小时,那么您只需每12小时获取一次。

只需存储#changes和#test并选择你需要检查的那些......你可以每分钟运行一次脚本,然后让一些统计数据完成!

答案 1 :(得分:0)

在共享主机上,您可能还会遇到脚本运行时问题。例如,如果您的脚本运行时间超过30秒,则服务器可能会终止。如果您的主机属于这种情况,您可能需要对处理每个Feed所需的时间进行一些测试/记录,并在计算出您应该同时处理多少Feed时将其考虑在内。

我必须做的另一件事就是将“最后一次扫描”标记为更新之前我处理了每个单独的请求,以便问题Feed不会继续失败并被选中每个cron运行。如果需要,您可以在失败时再次更新条目,并指定失败原因(如果已知)。