Использование очереди rabbitmq и вставка сообщений в Mysql в облаке?

Я разработал приложение для Android, в котором оно подписывается на очередь, а также публикуется в других очередях. Одновременно он публикует одно и то же сообщение в двух разных очередях, одна из них представляет собой очередь с именем «Очередь», и теперь из экземпляра appfog мне нужно подписаться на «Очередь», потреблять сообщения и вставлять их в БД mysql.

Я создал автономное приложение php для вышеуказанной цели с помощью codeigniter. По какой-то причине рабочее приложение теряет связь с rabbitmq. Я хотел бы знать, как лучше всего это сделать. Как рабочее приложение в appfog может поддерживать перезапуск приложения.

какую вещь мне нужно использовать, чтобы решить вышеуказанную проблему.


person guy_fawkes    schedule 19.04.2013    source источник


Ответы (1)


Какую версию RabbitMQ вы используете? В версии 3.0 пульсации были включены по умолчанию для подключений. Если есть период регулярного отключения (по умолчанию 10 минут), то, вероятно, отключение происходит из-за сердцебиения.

Ваш клиент (надеюсь) может настроить более длительное время во время согласования соединения, или вы можете заставить ваше PHP-приложение отправлять пульс через регулярные промежутки времени. Вот объявление это немного описывает.

person Philip Cristiano    schedule 19.04.2013
comment
я понял, что проблема не в соединении rabbitmq. это с кодом, связанным со вставками mysql. я проверил журналы сбоев своего приложения, и ошибка Mysql исчезла. пример потребителя php rabbitmq имеет обратные вызовы для получения сообщения и register_shutdown. при получении обратного вызова я не могу использовать $this воспламенителя кода, потому что он выходит за рамки, и я использовал get_instance(). я не уверен, как вызвать метод от клиента rabbitmq, чтобы получить функцию обратного вызова. - person guy_fawkes; 22.04.2013