Newto
@Newto

Как организовать очередь сообщений так, что бы каждое след. сообщение передавалось только после того, как обработано предыдущее?

Есть несколько сообщений в очереди, в скрипте "Sender.php". И есть скрипт-получатель, соответственно, "Receiver.php".
Задача заключается в том, что бы после отправки сообщения из sender-a, receiver отправлял флаг о завершенности/незавершенности обработки полученного сообщения и только если флаг имеет статус "завершено", то отправляется следующее сообщение из очереди.

С RabbitMQ я еще не работал, только смотрю в его сторону и пока не понял возможно ли с помощью него в принципе осуществить подобный функционал. Если есть знающие люди, то прошу подсказки по данному вопросу. Если с кратким примером кода, то вообще было бы замечательно.
  • Вопрос задан
  • 65 просмотров
Решения вопроса 2
@yarkin
Из текста не до конца понятно, Вы хотите, чтобы была очередь или sender должен выполняться каждый раз для нового сообщения? Если очередь, то обрабатывать сообщения по одному можно, но только если получатель один. В протоколе AMQP можно вручную получать сообщения по одному - basic_get, или выставить количество неподтвержденных сообщений в 1 и подтверждать обработку каждого.
Ответ написан
inoise
@inoise Куратор тега PHP
Solution Architect, AWS Certified, Serverless
Rabbitmq работает в таком режиме если 1 consumer. Если больше то нет. Чуть серьёзнее пример - Kafka. Там если настроить 1 партицию на топик то будет ожидаемый результат
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы