Я очень новичок в RabbitMQ и использую RabbitMQ 3.5.3, Erlang R14B04 и библиотеку Альваро Видела (https://github.com/videlalvaro/php-amqplib) для очередей в RabbitMQ. Мне нужно постоянно поддерживать связь с потребителями, а не продюсером. Простая логика заключается в том, что я запускаю своего продюсера через cron. После того, как очередь создается, нет необходимости поддерживать продление соединения. Но рабочий или потребитель будет инициирован один раз. И эта связь никогда не должна умирать.
Если это также делает cron, я всегда заканчиваю длинным списком потребительских подключений в конце дня, что раздражает и нежелательно.
Итак, пуантин здесь:
1. Создавайте очередь и закрывайте соединение cron каждый раз.
2. Потребитель начал один раз и продолжал вечно. Все, что поставлено в очередь, будет потреблено мгновенно.
Может ли эта архитектура быть построена в моей системе. Какие необходимые изменения мне нужно сделать здесь.
Чтение вашего описания трудно сказать что-то еще или я просто не понимаю вашу проблему. Но я бы построил приложение, что проверяет кролика каждые 1 секунду или 3 секунды, если что-то придет
потребитель
createConnectionToRabbit
while (true) {
checkConnectionStillAlive
fetchDataFromQueue
doProcessData
sleep(3)
}
closeConnection
Режиссер
createConnectionToRabbit
sendDataToRabbit
closeConnection