У меня есть проект Django, который использует Django Каналы.
Django версия 2.2.10.
Django Каналы версии 2.3.0.
Приложение, над которым я сейчас работаю, НЕ использует Django Каналы - другие приложения в тех же проектах используют его.
Приложение, над которым я работаю, имеет простой вид:
def generate_usage_report(request):
time.sleep(300)
return HttpResponse("Done")
Это представление запускается по запросу AJAX, поэтому мне все равно, что для возврата потребуется 5 минут - браузер пользователя показывает строку загрузки, пока это не будет сделано.
К сожалению, примерно через 30 секунд (дать или взять) я получаю в своих журналах следующее:
WARNING Application instance <Task pending coro=<AsgiHandler.__call__() running at /opt/my_project/venv3/lib/python3.6/site-packages/channels/http.py:192> wait_for=<Future pending cb=[_chain_future.<locals>._call_check_cancel() at /usr/lib64/python3.6/asyncio/futures.py:403, <TaskWakeupMethWrapper object at 0x7f02891c44c8>()]>> for connection <WebRequest at 0x7f02891c20f0 method=GET uri=/my_requested_page clientproto=HTTP/1.0> took too long to shut down and was killed.
И вызов Ajax никогда не завершается, так как вызов функции преждевременно прерывается. Есть ли какой-нибудь способ запустить его до завершения?