Как реализовать асинхронные задачи в Django rest framework?После того, как python3.7 async.io стал частью языка python, и в него встроены сопрограммы.
Но я не могу использовать его, мне пришлось использовать celery и сервер redis для такого асинхронного поведения.
Обновление
class ReportViewSet(viewsets.ModelViewSet):
queryset = Report.objects.all()
serializer_class = ReportSerializer
filter_class = ReportFilter
def create(self, request):
serializer = ReportSerializer(data=request.data)
if serializer.is_valid(raise_exception=True):
report_obj = serializer.save()
#Start multiple tools asynchronously but we need to return the next statement without waiting for those tools to finish
return Response(serializer.data, status=status.HTTP_201_CREATED)
return Response(serializer.errors, status=status.HTTP_400_BAD_REQUEST)
Я пытался изменить создание async function
, которое запускает инструменты, но я получаю сообщение об ошибке, что вы не можете запустить эту функцию вИсполнитель это не второстепенная.Когда я пытался сделать функцию create
асинхронной, она возвращает сопрограмму вместо HTTP response
.Таким образом, сам django-rest-framework
должен модифицировать свои внутренние устройства, чтобы они были сопутствующими типами.Любые предложения или мысли о том, как сделать то, что я упомянул, без использования MQ или методов кэширования.