Python-RabbitMQ(简单发送模型)
Posted 努力乄小白
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Python-RabbitMQ(简单发送模型)相关的知识,希望对你有一定的参考价值。
RabbitMQ需要 erlang 和pika
发送端:生产者
import pika connection = pika.BlockingConnection( pika.ConnectionParameters(‘localhost‘)) channel =connection.channel()#声明一个管道,在管道里发消息 #声明queue channel.queue_declare(queue=‘hello‘)#在管道里还得声明一个队列 channel.basic_publish(exchange=‘‘, routing_key=‘hello‘,#就是列队queue名字 body=‘Hello World‘#消息内容 ) print(" [x] Sent ‘Hello World!‘") connection.close()#不用关闭管道,关闭连接就行
接收端:消费者
import pika # 建立到达RabbitMQ Server的connection # 此处RabbitMQ Server位于本机-localhost connection = pika.BlockingConnection(pika.ConnectionParameters( host=‘localhost‘)) channel = connection.channel() # 声明queue,确认要从中接收message的queue # queue_declare函数是幂等的,可运行多次,但只会创建一次 # 若可以确信queue是已存在的,则此处可省略该声明,如producer已经生成了该queue # 但在producer和consumer中重复声明queue是一个好的习惯 channel.queue_declare(queue=‘hello‘) print(‘ [*] Waiting for messages. To exit press CTRL+C‘) # 定义回调函数 # 一旦从queue中接收到一个message回调函数将被调用 # ch:channel # method: # properties: # body:message def callback(ch, method, properties, body): print(" [x] Received %r" % body) # 从queue接收message的参数设置 # 包括从哪个queue接收message,用于处理message的callback,是否要确认message # 默认情况下是要对消息进行确认的,以防止消息丢失。 # 此处将no_ack明确指明为True,不对消息进行确认。 channel.basic_consume(callback, queue="hello", no_ack=True) # 开始循环从queue中接收message并使用callback进行处理 channel.start_consuming()
以上是关于Python-RabbitMQ(简单发送模型)的主要内容,如果未能解决你的问题,请参考以下文章