Python3 通过 pika 连接 RabbitMQ 的基本用法,,【RabbitMQ


【RabbitMQ 服务器】

#在vhosttest里面有exchangetest和queuetest通过rkeytest绑定Broker:192.168.0.xxvirtualhost:vhosttestExchange:exchangetestQueue:queuetestRoutingkey:rkeytest


【Python 环境】

OS:Windows10Python:3.6.3x64pika:0.11.2


【通过浏览器查看队列状态】

http://192.168.0.xx:15672/api/queues/vhosttest/queuetest


【send.py】

#encoding:utf-8#author:walker#date:2018-01-31#summary:发送方/生产者importos,sys,timeimportpikadefMain():credentials=pika.PlainCredentials("test","test")parameters=pika.ConnectionParameters(host="192.168.0.xx",virtual_host='vhosttest',credentials=credentials)connection=pika.BlockingConnection(parameters)#连接RabbitMQchannel=connection.channel()#创建频道queue=channel.queue_declare(queue='queuetest')#声明或创建队列whileTrue:#循环向队列中发送信息message=time.strftime('%H:%M:%S',time.localtime())channel.basic_publish(exchange='exchangetest',routing_key='rkeytest',body=message)print('sendmessage:%s'%message)whileTrue:#检查队列,以重新得到消息计数queue=channel.queue_declare(queue='queuetest',passive=True)messageCount=queue.method.message_countprint('messageCount:%d'%messageCount)ifmessageCount<100:breaktime.sleep(1)#关闭连接connection.close()if__name__=='__main__':Main()


【recv.py】

#encoding:utf-8#author:walker#date:2018-01-31#summary:接收方/消费者importos,sys,timeimportpika#接收处理消息的回调函数defConsumerCallback(channel,method,properties,body):print("Received%s"%body)defMain():credentials=pika.PlainCredentials("test","test")parameters=pika.ConnectionParameters(host="192.168.0.xx",virtual_host='vhosttest',credentials=credentials)connection=pika.BlockingConnection(parameters)#连接RabbitMQchannel=connection.channel()#创建频道queue=channel.queue_declare(queue='queuetest')#声明或创建队列#no_ack=True开启自动确认,不然消费后的消息会一直留在队列里面#no_ack=no_manual_ack=auto_ack;不手动应答,开启自动应答模式channel.basic_consume(ConsumerCallback,queue='queuetest',no_ack=True)print('WaitMessage...')channel.start_consuming()if__name__=='__main__':Main()


【相关阅读】

pika pypi

pika readthedocs

Ubuntu 16.04 通过 apt 安装 RabbitMQ

Python3之RabbitMQ


*** walker ***


Python3 通过 pika 连接 RabbitMQ 的基本用法

评论关闭