python连接RabbitMQ
def compare_RabbitMQ(data): mq_host = data.pop("mq_host") mq_user = data.pop("mq_user") mq_password = data.pop("mq_password") mq_port = data.pop("mq_port") virtual_host = data.pop("virtual_host") for field in data.keys(): queuename = field connection = pika.BlockingConnection(pika.ConnectionParameters(mq_host, mq_port, virtual_host)) channel = connection.channel() actul = connectRabbitMQ(channel, queuename, 1) def connectRabbitMQ(channel, queuename, size): message_list = [] global count1 count1 = 0 def callback(ch, method, properties, body): '''回调函数,处理从rabbitmq中取出的消息''' global li, count1 # print('[x] %r:%r' % (method.routing_key, body)) li = body.decode('utf-8') message_list.append("%s" % li) channel.basic_ack(delivery_tag=method.delivery_tag) # 告诉生成者,消息处理完成 count1 += 1 if count1 >= size: # 需要做时间处理判断是否停止 channel.stop_consuming() return channel.basic_consume(callback, queue=queuename) # no_ack写的话,如果接收消息,机器宕机消息就丢了 channel.start_consuming() # 开始监听接受消息 print(message_list) return message_list