Запуск Scrapy Spiders в задаче сельдерея
У меня есть сайт 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 и использовать рабочих для постановки запросов на сканирование.
Однако у меня возникают проблемы с реакторами Торнадо, которые не могут быть перезапущены. Первый и второй пауки работают успешно, но последующие пауки выдают ошибку ReactorNotRestartable.
Кто-нибудь может поделиться советами по запуску Spiders в рамках Celery?