2017-02-13 3 views
0

Я пытаюсь получить клиента Qpid Proton Python, чтобы подписаться на брокер ActiveMQ над AMQP v1.0 в качестве надежного потребителя.Подключение к прочному потребителю - Qpid Proton Python

Я могу создать долговременную подписку, но не совсем понимаю, как подобрать ту же подписку при следующем запуске моего скрипта.

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

Возможно, мне не хватает создания «ClientID» (как его называет ActiveMQ), но не может видеть (в документации Qpid Proton), как его установить.

Вот мой код: -

def on_start(self, event): 
    if self.subscription_name: 
     logging.debug("Naming durable subscription " + self.subscription_name) 
     durable = DurableSubscription() 
    else: 
     logging.debug("Subscription will not be durable") 
     durable = None 

    messaging_connection = event.container.connect(self.url) 
    logging.info(messaging_connection.clientID) 
    event.container.create_receiver(
     messaging_connection, 
     self.resource, 
     name=self.subscription_name, 
     options=durable 
    ) 
    logging.debug("Connected to " + self.url + "/" + self.resource) 

ответ

0

Я решил эту проблему (с помощью пользователей Qpid списка рассылки).

Как и следовало ожидать, мне нужно было назвать клиентское соединение. Это делается путем добавления следующей строки кода перед вызовом метода connect.

event.container.container_id = __file__ 

(NB Я просто дал соединительной такое же имя, что и сценарий)

Другому Гочи был что event.receiver.close() метод вызывается один раз мой сценарий обработал все сообщения, разрушает долговечную подписку. Чтобы оставить его на месте после завершения сценария, вместо этого используйте event.receiver.detach().

Список рассылок здесь ->http://qpid.2158936.n2.nabble.com/Connecting-to-durable-consumer-Qpid-Proton-Python-td7659185.html

Смежные вопросы