У меня есть сайт 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?