Правильный способ отменить потребление rabbitmq с помощью pika

Я хочу реализовать клиент rpc с помощью rabbitmq. Мой код в первую очередь выглядит как

def start(self):
    while True:
        self.channel.basic_consume(self.on_delivery)
 ...
 client.start() // blocking call

Как правильно остановить этого клиента? Сейчас делаю channel.basic_cancel(self.on_cancel, self.consumer_tag) из другого треда. Однако часто задаваемые вопросы по pika говорят It is not safe to share one Pika connection across threads.

Какой предпочтительный способ отменить потребление?


person sergeyz    schedule 04.03.2014    source источник


Ответы (1)


Пока вы создаете одно соединение для каждого потока, все будет в порядке.

eanandersson создал пример этого здесь.

person Drewness    schedule 04.03.2014