如何关闭pika消耗线程

时间:2018-07-25 15:09:00

标签: multithreading rabbitmq pika python-pika

Pika的新事物,我有一些类似的代码:(这里不包括构造函数和其他不相关的函数)

class Consumer(object):

    def __disconnect(self):
        try:
            self.__channel.stop_consuming()
            self.__channel.close()
            self.__connection.close()
        except Exception as e:
            print str(e)

    def run(self):
        While self.__isConsuming:
            self.__channel.start_consuming()
            print('stop consuming')

    def shutdown(self):
        self.__isConsuming=False
        self.__disconnect()
        print('complete')

这是在单独的使用线程中。但是,当我从线程中调用关闭使用者时,有时它会在断开连接功能中遇到异常,即连接已关闭,那么我会在关闭状态中看到打印内容;  有时候,它只是在运行时命中打印,然后退出运行,却从未在关机状态下看到过打印,这对我来说似乎是不完整的关机。

所以有人知道原因吗?关闭pika使用者线程的正确方法应该是什么?顺便说一句,我正在使用pikablockingConnection

谢谢

0 个答案:

没有答案