Ejecución de arañas Scrapy en una tarea de apio
Tengo un sitio de Django donde ocurre un rasguño cuando un usuario lo solicita, y mi código inicia un script independiente de Scrapy Spider en un nuevo proceso. Naturalmente, esto no está funcionando con un aumento de usuarios.
Algo como esto:
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()
Decidí usar el apio y usar los trabajadores para poner en cola las solicitudes de rastreo.
Sin embargo, estoy teniendo problemas con los reactores Tornado que no pueden reiniciarse. La primera y segunda araña se ejecutan con éxito, pero las arañas posteriores lanzarán el error ReactorNotRestartable.
¿Alguien puede compartir algún consejo con la ejecución de Spiders en el marco de Celery?