@Kirill-Gorelov
С ума с IT

Два вопроса по request на python?

Парни, привет.

Такая ситуация, нужно выполнить много тяжелых задач в короткое время, решили сделать на подобии распределенной системы. Отправляем параметры на разные сервера для параллельного вычисления.

Собственно говоря вопрос. Как нам отправить запрос с помощью библиотеки request не дожидаясь ответа, отправил данные и пусть они там сами себе вычисляются?? Не хотелось бы ставит таймаут на обрывании связи. Может есть какой-то другой способ?

И второй вопрос. Когда эти данные посчитаются они придут к нам обратно и нам их нужно записать. Вопрос как нам предусмотреть такой вариант что обратных запросов будет очень много что мы не сможешь их сохранить за один раз? У меня есть мысль - поставить на нашей стороне очередь и сохранять по мере поступления.

Конечно же я не говорю, что у нас будут объемы как у яндекса и к тому же думаю что все будет работать не плохо, но все же хотелось подложить соломку.
Кстати, если я не правильно мыслю, буду рад если направите в нужном русле.
  • Вопрос задан
  • 147 просмотров
Решения вопроса 1
sim3x
@sim3x
Задача слишком пространно описана
Однако по признакам она похожа на очередь задач с воркерами

Очередь мониторит состояние воркеров, управляет отправкой/получением/сохранением информации для воркеров
Воркер код, который занимает получением и обработкой, которое занимает продолжительное время
Очередь при наличии свободного воркера кидает ему задание на обработку
Воркеры масштабируются простым добавлением железа

Что выбрать из очередей
Для начала советуют селеру https://stackoverflow.com/questions/48250676/what-...

Я посоветую почитать get-started и выбрать то что понравится
Вначале не смотрите на производительность

Также почитайте про Kafka https://content.pivotal.io/blog/understanding-when...

Джанга имеет поддержку селеры из коробки https://docs.celeryproject.org/en/latest/django/fi...
Пояснять про то, как делать таски я не буду - доки у селеры отличные

Для общего понимания, как работать с zmq-django https://habr.com/ru/post/181037/
(Большая часть работы делается руками)
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
kitscribe
@kitscribe
Хаброжитель
Почитайте про асинхронность. Тут действительно дело не в requests.

Если вкратце, суть простая.

Сервер работает, как обработчик запросов и очередей и раздаёт данные из очереди Output. А при входящем запросе помещает данные для обработки в очередь Input (I/O) и ждёт следующий запрос, чтобы клиенты не схватил таймаут, например
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы
Level Travel Москва
До 160 000 ₽
Big Data Solutions Санкт-Петербург
от 100 000 до 220 000 ₽
19 февр. 2020, в 12:32
300 руб./за проект
19 февр. 2020, в 12:21
800 руб./за проект
19 февр. 2020, в 09:36
10000 руб./за проект