Лучшая альтернатива опросу при ожидании HTTP-запроса в django?

У меня есть приложение django, которому необходимо взаимодействовать с бэкенд-сервисом. Обычно я делаю это следующим образом:

def my_view(request, id):
    backend_response = requests.get('http://backend.com/{}/'.format(id))
    return HttpResponse(status=backend_response.status_code)

К сожалению, бэкенд-сервис в данном случае работает не так. Вместо того чтобы включить результаты в HTTP-ответ, он отправит их в отдельном HTTP-запросе.

Мой текущий подход заключается в том, чтобы записывать результаты в базу данных и ждать их в оригинальном обработчике запроса:

def my_view(request, id):
    requests.get('http://backend.com/{}/'.format(id))
    while True:
        sleep(1)
        try:
            backend_response = BackendResponse.objects.get(id=id)
            break
        except BackendResponse.DoesNotExist:
            pass
    return HttpResponse(status=backend_response.status_code)

Это кажется мне очень странным. Есть ли лучшие решения для этой проблемы?

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