I'm trying to implement a graceful shutdown to my web server ran by aiohttp. I need it to gracefully close and clean redis and DB connections.
For what I ve seen in the different documents talking about this I ve registered a callback with add_signal_handler of the main loop and yet the callbacks are still not triggered when my server shuts down.
Here is what I got:
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)
Do you have any idea ? thanks for your answers in advance