Позвольте мне дать вам представление о том, что я пытаюсь сделать.
Я должен разработать систему в php / mysql, работающую на Linux. Я планирую использовать RabbitMQ для достижения чего-то, что, я бы сказал, требует параллельной обработки.
У меня есть работа на клиента, которая может занять от 5 минут до 70 минут, в зависимости от объема данных, которые будут обработаны для данного клиента. Клиент может разместить запрос на работу в произвольном порядке.
Предположим, что 5 клиентов публикуют свою работу со временем, необходимым для выполнения соответствующей работы, как указано ниже
У обычной очереди есть проблема, так как работа client1 займет 65 минут, поэтому client2 должен ждать 75 минут (65 + 10), чтобы завершить работу, которая занимает 10 минут.
Я знаю, что в RabbitMQ я могу создать много рабочих для выполнения этой работы, но в зависимости от времени, которое требуется для работы, и положения работы в очереди, клиенту может потребоваться много времени, чтобы выполнить свою работу.
Поэтому я стремлюсь создать динамических потребителей для каждого клиента. И каждый потребитель выполняет работу для каждого клиента индивидуально.
Это возможно в Rabbitmq? Если да, то как этого достичь?
Задача ещё не решена.
Других решений пока нет …