Как лучше всего возвращать результат асинхронной задачи в представления Django?
Я создаю приложение Djano, которое обрабатывает изображение в задаче Celery. Пост внутри метода представления обрабатывает ввод и запускает задачу. Внутри задачи я создаю экземпляр модели на основе обработанного изображения. В том же представлении я хочу вернуть ответ де-сериализации экземпляра модели. Каков наилучший способ передать этот ответ? Должен ли фронтенд ожидать этого по другому url? Как я могу сообщить своему приложению, что экземпляр модели готов к обслуживанию?
# models.py
class Image(models.Model):
name = models.CharField(max_length=50, blank=True)
...
# tasks.py
@shared_task
def long_running_function(user, data):
image = Image.objects.create()
...
return image # ?
# views.py
class RequestImage(APIView):
def post(self, request):
...
image = celery_task_example.delay(
request.user.id,
request.data
)
# if image is ready
serializer = ImageSerializer(image)
return Response(serializer.data)