Scrapy 1.0:如何在Celery中运行爬网程序



我尝试了文档中的示例http://doc.scrapy.org/en/stable/topics/practices.html,但第二次运行ReactorNotRestartable时会出现错误。

settings = get_project_settings()
runner = CrawlerRunner(settings=settings)
@defer.inlineCallbacks
def crawl():
    yield runner.crawl(LatestNewsSpider)
    reactor.stop()
def run_spider():
    crawl()
    reactor.run()

在Celery设置中将CELERYD_MAX_TASKS_PER_CHILD设置为1。这将在每个子进程中只运行一个任务,因此在同一进程中永远不会启动反应器一次以上。

或者,你可以在一个线程中运行reactor,永远不要停止它。我不知道它是否有效。钩针可能有用。

相关内容

  • 没有找到相关文章

最新更新