У меня есть сайт Django, где царапины случаются, когда пользователь запрашивает его, а мой код запускает автономный Scrapy в новом процессе. Естественно, это не работает с увеличением пользователей.
Что-то вроде этого:
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()
Я решил использовать сельдерей и использовать рабочих для очереди запросов на обход.
Однако я столкнулся с проблемами с реакторами Tornado, которые не могут перезагружаться. Первый и второй пауки успешно выполняются, но последующие пауки будут бросать ошибку ReactorNotRestartable.
Любой может поделиться любыми советами с запущенными пауками в рамках Celery?