810просмотров
13.5%от подписчиков
10 марта 2026 г.
questionScore: 891
Как реализовать корректный graceful shutdown в asyncio-сервисе без потери данных? Ловите SIGTERM/SIGINT (Unix — loop.add_signal_handler), ставьте общий флаг/Event, отменяйте воркеры через TaskGroup/cancel(), ждите их в try/except CancelledError/finally. Давайте тайм-аут на дренаж очередей и завершение in-flight операций, корректно закрывайте пулы (БД/HTTP). В ASGI используйте lifespan-хуки (startup/shutdown). Библиотека собеса по Python