scrapy-redis中master和slave的通信
来源:10-4 scrapy-redis编写分布式爬虫代码

慕函数7358036
2020-04-05
老师,从这节课看scrapy-redis的入口是name:start_urls,那slave端要如何获取master端存入name:requests的请求呢,从master那yield的话应该也没办法回调slave上的处理函数吧,是有提供方法还是需要我自己重写相关的源码
写回答
1回答
-
如果是slave 那么重写这个方法就行了, 记住 master不要这么写, 我把这个代码给你贴一下:
def next_requests(self): found = 0 # TODO: Use redis pipeline execution. while found < self.redis_batch_size: req = self.crawler.engine.slot.scheduler.queue.pop(0) if not req: # Queue empty. break if req: yield req found += 1 else: self.logger.debug("Request not made from data: %r", req.url) if found: self.logger.debug("Read %s requests from '%s'", found, self.redis_key)
072020-04-10
相似问题