pyspider的爬取任务队列有没有数量限制
数据库中存了大概一百万个url
,我需要从数据库中取出这些url
,并将它们加入到爬取的任务队列中去。
借用另一位同学的问题描述(只是我的情况更加极端):
@every(minutes=24 * 60)
def on_start(self):
self.key_word_rank_page()
pass
def key_word_rank_page(self):
i = 0; page 参数从0开始的
while i <= 1000000:
keywordrank_url = "https://www.douban.com/more/getmore.html?page=%s&genreIds="%(i)
self.crawl(url=keywordrank_url, callback=self.process_keyword)
i += 1;
pass
这样,会不会存在丢失任务(数据)的风险?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
没有数量限制,但是存在三个瓶颈:
所以建议还是分批发送
貌似在pyspider配置文件里,全局配置里可以增加 queue-maxsize 配置项,来配置最大队列容量。参见源码: