Python-RabbitMQ(简单发送模型)

RabbitMQ需要 erlang 和pika

1.RabbitMQ和erlang版本必须匹配,否则就报没有进程错误

2.RabbitMQ的erlang.cookie和windows下的erlang.cookie必须一致

在windows安装RabbitMQ需要配置环境变量,一个是erlang环境变量,一个是RabbitMQ的环境变量切记!

发送端:生产者

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
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() #不用关闭管道,关闭连接就行

 接收端:消费者

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
import  pika
 
# 建立到达RabbitMQ Server的connection
# 此处RabbitMQ Server位于本机-localhost
connection  =  pika.BlockingConnection(pika.ConnectionParameters(
     '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()

 

转载于:https://www.cnblogs.com/394510636-ff/p/9282159.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值