Лучшая альтернатива опросу при ожидании 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)
Это кажется мне очень странным. Есть ли лучшие решения для этой проблемы?