Запуск пауков Scrapy в задаче Celery

У меня есть сайт Django, на котором происходит очистка, когда пользователь запрашивает его, и мой код запускает автономный скрипт Scrapy Spider в новом процессе. Естественно, это не работает с увеличением пользователей.

Что-то вроде этого:

class StandAloneSpider(Spider):
    #a regular spider

settings.overrides['LOG_ENABLED'] = True
#more settings can be changed...

crawler = CrawlerProcess( settings )
crawler.install()
crawler.configure()

spider = StandAloneSpider()

crawler.crawl( spider )
crawler.start()

Я решил использовать Celery и рабочих для постановки запросов на сканирование в очередь.

Однако у меня возникают проблемы с невозможностью перезапуска реакторов Tornado. Первый и второй пауки запускаются успешно, но последующие пауки выдают ошибку ReactorNotRestartable.

Кто-нибудь может поделиться советами по запуску Spiders в рамках Celery?

33
задан Serjik 19 December 2015 в 09:04
поделиться