Задать вопрос
Newto
@Newto

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

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

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

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

Похожие вопросы