#python #python-3.x #scrapy
#python #python-3.x #scrapy
Вопрос:
Мне нужно повторно обработать страницу через некоторое время. Для этого я делаю:
c = CallLaterOnce(spider.crawler.engine.schedule,{
'retryreq': retryreq,
'spider': spider
})
c.schedule(delay=40)
https://docs.scrapy.org/en/latest/_modules/scrapy/utils/reactor.html ?выделите =CallLaterOnce
Он использует reactor.callLater(delay, self)
. Проблема в том, что scrapy не ожидает выполнения всех задач реактора. Таким образом, scrapy завершает работу перед добавлением синтаксического анализа страницы в очередь spider.crawler.engine.schedule
. Насколько я понимаю, нужен какой-то способ «заблокировать ее», пока не будут выполнены все задачи реактора.