Я пытаюсь осуществить корректное завершение работы моего веб-сервера, управляемого aiohttp. Мне нужно это, чтобы изящно закрыть и очистить подключения Redis и DB.
Для того, что я видел в различных документах, говорящих об этом, я зарегистрировал обратный вызов с помощью add_signal_handler основного цикла, и все же обратные вызовы все еще не запускаются, когда мой сервер выключается.
Вот что я получил:
def gracefull_shutdown(signame, loop):
logging.debug('graceful shutdown callback')
app = web.Application()
if __name__ == '__main__':
asyncioLoop = asyncio.get_event_loop()
for signame in {'SIGINT', 'SIGTERM'}:
asyncioLoop.add_signal_handler(
getattr(signal, signame),
functools.partial(gracefull_shutdown, signame, asyncioLoop)
)
web.run_app(app, handle_signals=True)
Есть идеи? спасибо за ваши ответы заранее