Как выполнять задачи параллельно с помощью django async

Я использую daphne в качестве asgi сервера, с django. превращение моего представления из sync в async было относительно простым, так как я мог использовать @sync_to_async в ORM части. проблема в том, что некоторый мой сервис выглядит так:

async def service_of_mine(p1, p2, p3):
  r1 = await foo1(p1)
  r2 = await foo2(p2)
  r3 = await foo3(p3)
  return r1, r2, r3

я хотел запустить все три вызова параллельно, используя return await asyncio.gather(foo1(p1), foo2(p2), foo3(p3)), но мой api зависает на

Application instance <Task pending name='Task-1' coro=<ASGIStaticFilesHandler.__call__() running at /mypath/python3.10/site-packages/django/contrib/staticfiles/handlers.py:101> wait_for=<Future pending cb=[_chain_future.<locals>._call_check_cancel() at /home/rado/.pyenv/versions/3.10.6/lib/python3.10/asyncio/futures.py:385, Task.task_wakeup()]>> for connection <WebRequest at 0x7f8274b98340 method=GET uri=/myApiPath clientproto=HTTP/1.1> took too long to shut down and was killed.

как я могу этого добиться?

Вернуться на верх