【发布时间】:2016-09-27 20:39:23
【问题描述】:
我用 scrapy-redis 编写了一个简单的蜘蛛来制作分布式蜘蛛。我发现当我启动两只蜘蛛然后将它们全部杀死时。 redis 队列只剩下“dupfilter”队列。当我重新启动两个蜘蛛时,它们根本没有工作。那么如果蜘蛛意外死亡或坠毁,如何重启?
【问题讨论】:
标签: scrapy web-crawler resume
我用 scrapy-redis 编写了一个简单的蜘蛛来制作分布式蜘蛛。我发现当我启动两只蜘蛛然后将它们全部杀死时。 redis 队列只剩下“dupfilter”队列。当我重新启动两个蜘蛛时,它们根本没有工作。那么如果蜘蛛意外死亡或坠毁,如何重启?
【问题讨论】:
标签: scrapy web-crawler resume
如果您将设置 SCHEDULER_PERSIST 设置为 False,则当蜘蛛完成时,dupefilter 将被清除。
但是,如果蜘蛛被杀死(即:按两次 Ctrl+C),情况就不是这样了。
你可以给你的蜘蛛添加一个标志来清除dupefilter(甚至队列),例如:
if self.clear_all:
self.crawler.engine.slot.scheduler.df.clear()
self.crawler.engine.slot.scheduler.queue.clear()
【讨论】: