我在共享的虚拟主机上有一个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作业,我应该限制每次运行的提取次数吗?要多少?

有帮助吗?

解决方案

“评价”是一件好事。每个Feed实际更改的频率如果每次更改的平均时间为24小时,那么您每12小时就会获取一次。

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

其他提示

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

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

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top