我在python中有一个很大的线程提要检索脚本。

我的问题是,如何负载均衡传出的请求,以免我太频繁地碰到任何一个主机?

对于feedburner来说,这是一个大问题,因为很大一部分网站通过feedburner代理其RSS,并且使事情更加复杂,许多站点会将其域名中的子域别名给feedburner以掩盖他们正在使用它的事实(例如“ mysite”将其RSS网址设置为feeds.mysite.com/mysite,其中feeds.mysite.com会跳至feedburner。有时它会阻止我一段时间,然后重定向到他们的"automated requests" error page

最佳答案

您可能应该执行一次请求(每周/每月,无论是否合适)。每个Feed并遵循重定向以获取“真实”地址。无论您当时的节流情况如何,您都应该能够解析所有供稿,保存该数据,然后对添加到列表中的每个新供稿进行一次处理。您可以查看urllib's geturl(),它会从您输入的URL中返回最终URL。当您对feed进行ping操作时,请务必使用原始文件(仅在负载平衡时保留“真实”字样),以确保在用户移动它或类似内容时,它可以正确重定向。

一旦完成,您可以简单地设计一个加载机制,例如给定域每小时仅X个请求,遍历每个提要,并跳过其主机达到极限的提要。如果feedburner公开(不太可能)其极限,则可以将其用于X,否则,您仅需对其进行估算并做出一个粗略的估算,即您知道该极限以下。但是,知道google的限制可能会衡量模式,而没有具体的硬限制。

编辑:从评论中添加了建议。

关于python - 传出负载平衡器,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/1827018/

10-09 00:30