Что произойдет, если запрос Django получит значение long?

#asp.net #django #asynchronous #synchronization #microservices

#asp.net #django #асинхронный #синхронизация #микросервисы

Вопрос:

Я пытаюсь определить архитектуру микросервисов для моего веб-приложения Django Restfull.Это инженерное приложение в некоторых местах будет включать тяжелые механические и геометрические вычисления. Из-за медленного (на самом деле python) характера вычислений Django я сделаю основное приложение с Django (из-за его убийственно приятных функций), а также я хочу создавать микросервисы как побочные функции на C # asp.net (из-за его вычислительной мощности). Это позволит мне выполнить сложные вычисления, чтобы я мог сохранить основное приложение Django так же, как мост. Итак, мои вопросы;

  1. Когда основное приложение Django отправляет запрос в микросервис, что произойдет, если вычисление в микросервисе будет слишком длинным? Допустим, 10 секунд, будет ли все мое приложение заморожено в течение 10 секунд.?
  2. Я хочу использовать асинхронные функции на ASP.NET , будет ли это негативно влиять на синхронизацию основного приложения Django?

Ответ №1:

@Issac v — Для длительно выполняющихся процессов вы не должны делать это в потоке запроса-ответа. Вы должны использовать очередь сообщений, такую как RabbitMQ, и использовать сельдерей, чтобы делать это асинхронно. Это освободит поток запроса-ответа. Например, Обработка изображений, обработка файлов и т. Д. Вы также можете выполнять тяжелые вычисления на python. В Python есть все, что вам нужно для вычислений. Я использовал Python и OpenCV для интенсивной обработки изображений. Вам решать, как вы разрабатываете свой сервис.

Кроме того, в микросервисной архитектуре вы думали об использовании чего-то вроде дизайна pub-sub вместо Http-запроса-ответа. Взаимодействие между сервисами идеально подходит для архитектуры публикации и подписки.

И, мой 2цент, вы можете делать все с Django. В Django есть все, что вам нужно.Возможно, вам не понадобится asp.net