使用python AMQP进行消息处理

使用python AMQP进行消息处理,python,python-3.x,rabbitmq,amqp,pika,Python,Python 3.x,Rabbitmq,Amqp,Pika,我正在开发rabbitmq消费者应用程序 我的消费者应该在单独的线程中消费并处理数据 我这里有一个脚本,但我不能让它工作。任何帮助。非常感谢。它将运行函数,然后不执行任何操作 导入pika、消费者配置、队列、线程 导入消息类 类别con: 定义初始化(自): self.config=Consumer\u config.\u config() self.path=self.config.path self.active=0 self.channel=None self.tag=None self.

我正在开发rabbitmq消费者应用程序 我的消费者应该在单独的线程中消费并处理数据 我这里有一个脚本,但我不能让它工作。任何帮助。非常感谢。它将运行函数,然后不执行任何操作

导入pika、消费者配置、队列、线程
导入消息类
类别con:
定义初始化(自):
self.config=Consumer\u config.\u config()
self.path=self.config.path
self.active=0
self.channel=None
self.tag=None
self.tb=无
def channsel(自我):
pika_conn_params=pika.ConnectionParameters(
host=self.config.url,port=self.config.port,
credentials=pika.credentials.PlainCredentials(self.config.user\u id,self.config.password))
连接=pika.BlockingConnection(pika连接参数)
回路连接
def runq(自身、通道、q):
self.channel=channel
def read_队列(自):
queue=self.channel.queue\u声明(
queue=“queue”,dustable=True,
独占=错误,自动删除=错误)
self.channel.queue\u绑定(
“队列”,
“交换”,
路由_key=str('text'))
self.channel.basic_qos(
预取(计数=500)
self.tag=self.channel.basic\u consume(“queue”,self.on\u msg)
self.channel.start_消费()
消息上的def(自身、未使用的信道、基本传送、属性、正文):
rk=基本传送路径密钥
self.tb=身体
q、 put(self.tb)
自我确认信息(基本交付标记)
def确认_消息(自我、传递_标签):
“”“通过发送
传递标记的Basic.Ack RPC方法。
"""
#LOGGER.info('确认消息%s',传递#标记)#在消息传递后完成确认
self.channel.basic_ack(交付标签)
def printq(自我,q):
tb=q.get()
item=Message\u Class.Messages().Process\u msg(tb,“text”)
打印(项目)
def运行(自):
cn=con()
connct=cn.channsel()
channel=connct.channel()
num_worker_线程数=2
对于范围内的i(num\u worker\u线程):
t1=threading.Thread(target=self.runq,args=(channel,q))
t2=threading.Thread(target=self.printq,args=[q])
t1.daemon=True
t2.daemon=True
t1.start()
t2.start()
t1.join()
t2.join()
q、 加入
如果名称=“\uuuuu main\uuuuuuuu”:
q=队列。队列()
r=con()
r、 运行()

您确定队列中有要处理的消息吗
队列
?您好,感谢查看此消息。对实际上,我的目标是使用python队列分别处理消息。因此,主要的消费过程是快速的。您确定队列中有消息要处理吗
队列
?您好,感谢您的关注。对实际上,我的目标是使用python队列分别处理消息。因此,主要的消费过程是快速的。