RabbitMQ — параллельная обработка трудоемких заданий

Позвольте мне дать вам представление о том, что я пытаюсь сделать.

Я должен разработать систему в php / mysql, работающую на Linux. Я планирую использовать RabbitMQ для достижения чего-то, что, я бы сказал, требует параллельной обработки.

У меня есть работа на клиента, которая может занять от 5 минут до 70 минут, в зависимости от объема данных, которые будут обработаны для данного клиента. Клиент может разместить запрос на работу в произвольном порядке.

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

  • работа на клиенте — 65 минут
  • работа на client2 — 10 минут
  • работа на клиенте — 5 минут
  • работа на клиенте — 10 минут
  • работа на клиенте — 20 минут

У обычной очереди есть проблема, так как работа client1 займет 65 минут, поэтому client2 должен ждать 75 минут (65 + 10), чтобы завершить работу, которая занимает 10 минут.

Я знаю, что в RabbitMQ я могу создать много рабочих для выполнения этой работы, но в зависимости от времени, которое требуется для работы, и положения работы в очереди, клиенту может потребоваться много времени, чтобы выполнить свою работу.

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

Это возможно в Rabbitmq? Если да, то как этого достичь?

1

Решение

Задача ещё не решена.

Другие решения

Других решений пока нет …