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

1

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

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

Итак, пуантин здесь:

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

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

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

Теги:
rabbitmq
amqp
php-amqplib

1 ответ

0

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

потребитель

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

Режиссер

createConnectionToRabbit
sendDataToRabbit
closeConnection
  • 0
    Спасибо. На самом деле, в прошлую пятницу я установил соединение работника и сделал так, чтобы TCP поддерживал активность и сердцебиение 30-х годов и позволил моей системе работать на выходные. В понедельник я нашел это живым, все работает нормально. У меня есть связь, канал, пустая очередь, все живы. Но как только я поставил в очередь два сообщения, все, кроме очереди, внезапно исчезло. Я получаю повышение в графике для двух сообщений. Была ли эта связь на самом деле жива? Если да, что случилось с ними в очереди? Как остановить это поведение. Мне нужно, чтобы сообщения использовались всегда после любого простоя.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню