получить уведомление от AWS в CloudWatch:

вернул проект scrapy, который сканирует каждый раз, когда приходит запрос лямбда-API.

Он отлично работает для первого вызова API, но позже он завершается неудачно и выдает ошибку ReactorNotRestartable.

Насколько я понимаю, экосистема AWS Lambda не убивает процесс, поэтому реактор все еще присутствует в памяти.

Ошибка лямбда-журнала выглядит следующим образом:

Traceback (most recent call last):
File "/var/task/aws-lambda.py", line 42, in run_company_details_scrapy
process.start()
File "./lib/scrapy/crawler.py", line 280, in start
reactor.run(installSignalHandlers=False)  # blocking call
File "./lib/twisted/internet/base.py", line 1242, in run
self.startRunning(installSignalHandlers=installSignalHandlers)
File "./lib/twisted/internet/base.py", line 1222, in startRunning
ReactorBase.startRunning(self)
File "./lib/twisted/internet/base.py", line 730, in startRunning
raise error.ReactorNotRestartable()
ReactorNotRestartable

Функция лямбда-обработчика:

def run_company_details_scrapy(event, context):
   process = CrawlerProcess()
   process.crawl(CompanyDetailsSpidySpider)
   process.start()

У меня был обходной путь, не останавливая реактор, вставив флаг в функцию запуска

process.start(stop_after_crawl=False)

Но проблема была в том, что мне пришлось ждать, пока не истечет время лямбда-вызова.

Пробовал другие решения, но ни одно из них вроде не работает. Может кто-нибудь подсказать мне, как решить эту проблему.

Ответы на вопрос(3)

Ваш ответ на вопрос