python使用rabbitmq接收_python实现rabbitMQ的消息生产和接收

本文提供了一个Python示例,展示了如何使用RabbitMQ进行消息生产和接收。首先确保环境配置了MySQL、redis和RabbitMQ,然后通过Python的pika库连接RabbitMQ,创建通道并声明队列。在send-rabbitmq.py中,从数据库获取数据或生成随机数,将消息发布到队列。在receive-rabbitmq.py中,设置回调函数接收并打印接收到的消息。
摘要由CSDN通过智能技术生成

本示例确保环境有 MySQL redis rabbitmq

如果启动缺少对应Python模块,请自行安装下

e555c723c46bd8ac16f9566ec9a5c126.png

send-rabbitmq.py

!/usr/bin/python

# -*- coding: utf-8 -*-

import os,sys

import MySQLdb

import pika

import random

import redis

#安装模块 pip install pika

#数据库连接

db = MySQLdb.connect('localhsot','root','yumg10','xiaogezi',charset='utf8')

cursor = db.cursor()

cursor.execute("select order_no from t_Loan")

#redis连接

#pool=redis.ConnectionPool(decode_response=True)

redis=redis.Redis(host='localhost',password='123456',port=6379)

# 新建连接,rabbitmq安装在本地则hostname为'localhost'

hostname = 'localhsot'

parameters = pika.ConnectionParameters(hostname)

connection = pika.BlockingConnection(parameters)

# 创建通道

channel = connection.channel()

# 声明一个队列,生产者和消费者都要声明一个相同的队列,用来防止万一某一方挂了,另一方能正>常运行

channel.queue_declare(queue='hello')

for i in 'PYTHON AS YOU KNOW':

number = random.randint(1, 1000)

data=cursor.fetchone()

redis.set('data','a')

#print redis.get('data')

if data is None:

data=i

else:

data=data

body = 'hello world:%s' % data

# 交换机; 队列名,写明将消息发往哪个队列; 消息内容

# routing_key在使用匿名交换机的时候才需要指定,表示发送到哪个队列

channel.basic_publish(exchange='', routing_key='hello', body=body)

print body

connection.close()

db.close();

receive-rabbitmq.py

#!/usr/bin/env python3

# -*- coding: utf-8 -*-

import pika

hostname = 'localhost'

parameters = pika.ConnectionParameters(hostname)

connection = pika.BlockingConnection(parameters)

# 创建通道

channel = connection.channel()

channel.queue_declare(queue='hello')

def callback(ch, method, properties, body):

print " [x] Received %r" % (body,)

# 告诉rabbitmq使用callback来接收信息

channel.basic_consume(callback, queue='hello', no_ack=True)

# 开始接收信息,并进入阻塞状态,队列里有信息才会调用callback进行处理,按ctrl+c退出

print ' [*] Waiting for messages. To exit press CTRL+C'

channel.start_consuming()

发文不易,知识沉淀,记得关注哦

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值