2012-02-09 3 views
1

Я использую RabbitMQ с PHP (через php-amqplib). Но сервер, где работает мой потребитель, имеет действительно неустойчивое соединение. Таким образом, каждый пользователь 15-30 минут потерял соединение с удаленным сервером rabbitmq, но php daemon все еще работает. Есть ли какое-либо решение для обработки соединений с потерями в этом случае?RabbitMQ и нестабильное соединение

ответ

2

Для соединения необходимо использовать биты сердца, но если проблема продолжает продолжаться, вам лучше зарегистрировать ошибки подключения, чтобы проверить, что происходит с подключением.

+0

Вы можете обратиться к хорошему примеру, где используется сердечный ритм ... Я пытался использовать его, и он находится в защищенной функции ... так что пришлось взломать реализацию AMQP ... но не смог найти место, где я могу просто передайте его как параметр в конструкторе или функции, и пусть код сделает все остальное. – Nasaralla

+0

@ Насаралла Я не использовал php для подключения к кролику. Я использовал NET, но если используемая вами библиотека похожа на клиентскую библиотеку C#, вы должны иметь возможность установить значение биения в фабрике соединений. См. Http://www.rabbitmq.com/releases/rabbitmq-dotnet-client/v3.0.1/rabbitmq-dotnet-client-3.0.1-client-htmldoc/html/type-RabbitMQ.Client.ConnectionFactory.html – Endymion

+0

Продолжить ... @Nasaralla Если библиотека php, которую вы используете, не предоставляет подобную конструкцию соединения, я предлагаю вам обратиться к автору с просьбой поддержать настроенные биения, поскольку это очень важная настройка соединения. И, наконец, как вы сказали, ваш последний шанс - это взломать библиотеку. надеюсь, это поможет – Endymion