Как объединить Celery с asyncio для асинхронной обработки HTTP-запросов?

Как получать асинхронные HTTP-запросы и обрабатывать их асинхронно с помощью celery? Вот что я пробовал, правильный ли это способ объединить async с celery, чтобы я мог получать асинхронные HTTP запросы и обрабатывать их асинхронно

Урл:

urlpatterns = [
    path('api/example/', example, name='example'),
]

В файле views.py есть

async def example(request):
    res = await process_data(request)

    json_data = json.loads(res.content)

    return render(request, "index.html", {"task_id": json_data["task_id"],
                                      "task_status": json_data["task_status"]})



async def process_data(request):

    result = some_CPU_heavy_function.delay("yes")

    return JsonResponse({"task_id": result.id,
                         "task_status": result.status},
                        status=status.HTTP_200_OK)

@shared_task
def some_CPU_heavy_function(some_data):
    return {"reply": "yes"}

А команда из Docker -

command: gunicorn server.asgi:application --bind 0.0.0.0:8000 -w 17 -k uvicorn.workers.UvicornWorker 
Вернуться на верх