Как настроить Consumer, запускается один раз и продолжается вечно без перерыва.

Я очень новичок в RabbitMQ и использую RabbitMQ 3.5.3, Erlang R14B04 и библиотеку Альваро Видела ( https://github.com/videlalvaro/php-amqplib) для очередей в RabbitMQ. Мне нужно постоянно поддерживать связь с потребителями, а не с производителем. Простая логика заключается в том, что я запускаю своего продюсера через cron. Поскольку после формирования очереди нет необходимости поддерживать соединение с производителем. Но рабочий или потребитель будут инициированы один раз. И эта связь никогда не должна умирать.

Если это также делается cron, я всегда получаю длинный список клиентских подключений в конце дня, что раздражает и не желательно.

Итак, изюминка здесь:

1. Создайте очередь и закройте соединение cron каждый раз.

2. Потребитель начал один раз и продолжается вечно. Все, что в очереди, будет использовано мгновенно.

Может ли эта архитектура быть встроена в мою систему? Какие необходимые изменения мне нужно сделать здесь.

1 ответ

Прочитав ваше описание, трудно сказать что-то большее, или я просто не очень хорошо понимаю вашу проблему. Но я бы построил приложение, которое проверяет кролика каждые 1 секунду или 3 секунды, если что-то приходит

потребитель

createConnectionToRabbit
while (true) {
  checkConnectionStillAlive
  fetchDataFromQueue
  doProcessData
  sleep(3)
}
closeConnection

Режиссер

createConnectionToRabbit
sendDataToRabbit
closeConnection
Другие вопросы по тегам