Проверить, сбросил ли пользователь соединение
Пользователь запрашивает данные, и ждет какое-то время, пока подготавливаются данные на сервере. Вдруг происходит ситуация, что пользователь сбрасывает соединение. Вдруг у него пропадает интернет или еще что, как отловить это программно?
Ответы (1 шт):
Автор решения: eri
→ Ссылка
Должно сработать connection_lost
import asyncio
from sanic import Sanic, response
app = Sanic()
@app.route('/')
async def handler(request):
try:
await asyncio.sleep(10)
except asyncio.CancelledError as e:
print('Not OK') # отловили тут
raise e
return response.text('OK')
app.run()
Асинхронная задачка должна райзнуть asyncio.CancelledError, если работа приложения блокирующая - используй экзекутор.