Python rabbitMQ如何实现生产消费者模式


Posted in Python onAugust 24, 2020

(一)安装一个消息中间件,如:rabbitMQ

(二)生产者

sendmq.py

import pika
import sys
import time
 
# 远程rabbitmq服务的配置信息
username = 'admin' # 指定远程rabbitmq的用户名密码
pwd = 'admin'
ip_addr = '10.1.7.7'
port_num = 5672
 
# 消息队列服务的连接和队列的创建
credentials = pika.PlainCredentials(username, pwd)
connection = pika.BlockingConnection(pika.ConnectionParameters(ip_addr, port_num, '/', credentials))
channel = connection.channel()
# 创建一个名为balance的队列,对queue进行durable持久化设为True(持久化第一步)
channel.queue_declare(queue='balance', durable=True)
 
message_str = 'Hello World!'
for i in range(100000000):
  # n RabbitMQ a message can never be sent directly to the queue, it always needs to go through an exchange.
  channel.basic_publish(
    exchange='',
    routing_key='balance', # 写明将消息发送给队列balance
    body=message_str, # 要发送的消息
    properties=pika.BasicProperties(delivery_mode=2, ) # 设置消息持久化(持久化第二步),将要发送的消息的属性标记为2,表示该消息要持久化
  ) # 向消息队列发送一条消息
  print(" [%s] Sent 'Hello World!'" % i)
  # time.sleep(0.2)
connection.close() # 关闭消息队列服务的连接

运行sendmq.py文件,可以从以下方法查看队列中的消息数量。

一是,rabbitmq的管理界面,如下图所示:

Python rabbitMQ如何实现生产消费者模式

二是,从服务器端命令查看

rabbitmqctl list_queues

Python rabbitMQ如何实现生产消费者模式

(三)消费者

receivemq.py

import pika
import sys
import time
 
# 远程rabbitmq服务的配置信息
username = 'admin' # 指定远程rabbitmq的用户名密码
pwd = 'admin'
ip_addr = '10.1.7.7'
port_num = 5672
 
credentials = pika.PlainCredentials(username, pwd)
connection = pika.BlockingConnection(pika.ConnectionParameters(ip_addr, port_num, '/', credentials))
channel = connection.channel()
 
# 消费成功的回调函数
def callback(ch, method, properties, body):
  print(" [%s] Received %r" % (time.time(), body))
  # time.sleep(0.2)
 
 
# 开始依次消费balance队列中的消息
channel.basic_consume(queue='balance', on_message_callback=callback, auto_ack=True)
 
print(' [*] Waiting for messages. To exit press CTRL+C')
channel.start_consuming() # 启动消费

运行receivemq.py文件,可以从以下方法查看队列中的消息数量。

Python rabbitMQ如何实现生产消费者模式

或者

rabbitmqctl list_queues

延伸:

systemctl status rabbitmq-server.service # 状态
systemctl restart rabbitmq-server.service # 重启

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
Flask框架中密码的加盐哈希加密和验证功能的用法详解
Jun 07 Python
50行Python代码实现人脸检测功能
Jan 23 Python
如何使用 Pylint 来规范 Python 代码风格(来自IBM)
Apr 06 Python
python 列表,数组和矩阵sum的用法及区别介绍
Jun 28 Python
浅谈Python traceback的优雅处理
Aug 31 Python
解决pycharm 远程调试 上传 helpers 卡住的问题
Jun 27 Python
python中调试或排错的五种方法示例
Sep 12 Python
如何在python开发工具PyCharm中搭建QtPy环境(教程详解)
Feb 04 Python
在jupyter notebook中调用.ipynb文件方式
Apr 14 Python
Python2手动安装更新pip过程实例解析
Jul 16 Python
python实现猜拳游戏项目
Nov 30 Python
Python标准库pathlib操作目录和文件
Nov 20 Python
利用Python的folium包绘制城市道路图的实现示例
Aug 24 #Python
深入分析python 排序
Aug 24 #Python
超级实用的8个Python列表技巧
Aug 24 #Python
基于CentOS搭建Python Django环境过程解析
Aug 24 #Python
详解Django中views数据查询使用locals()函数进行优化
Aug 24 #Python
python3让print输出不换行的方法
Aug 24 #Python
Django3中的自定义用户模型实例详解
Aug 23 #Python
You might like
图片存储与浏览一例(Linux+Apache+PHP+MySQL)
2006/10/09 PHP
解析用PHP实现var_export的详细介绍
2013/06/20 PHP
两种设置php载入页面时编码的方法
2014/07/29 PHP
PHP获取POST数据的几种方法汇总
2015/03/03 PHP
Symfony生成二维码的方法
2016/02/04 PHP
PHP实现的DES加密解密实例代码
2016/04/06 PHP
基于PHP制作验证码
2016/10/12 PHP
php常用经典函数集锦【数组、字符串、栈、队列、排序等】
2019/08/23 PHP
jQuery 学习6 操纵元素显示效果的函数
2010/02/07 Javascript
jQuery使用之处理页面元素用法实例
2015/01/19 Javascript
最流行的Node.js精简型和全栈型开发框架介绍
2015/02/26 Javascript
JS版元素周期表实现方法
2015/08/05 Javascript
javascript实现禁止复制网页内容汇总
2015/12/30 Javascript
Angular 中 select指令用法详解
2016/09/29 Javascript
js中json处理总结之JSON.parse
2016/10/14 Javascript
微信小程序-详解数据缓存
2016/11/24 Javascript
关于Vue单页面骨架屏实践记录
2017/12/13 Javascript
如何用JavaScript实现功能齐全的单链表详解
2019/02/11 Javascript
一次让你了解全部JavaScript的作用域
2019/06/24 Javascript
微信小程序的开发范式BeautyWe.js入门详解
2019/07/10 Javascript
python中使用pyhook实现键盘监控的例子
2014/07/18 Python
python Spyder界面无法打开的解决方法
2018/04/27 Python
Python中的random.uniform()函数教程与实例解析
2019/03/02 Python
python实现五子棋程序
2020/04/24 Python
Python连接HDFS实现文件上传下载及Pandas转换文本文件到CSV操作
2020/06/06 Python
Pycharm2020最新激活码|永久激活(附最新激活码和插件的详细教程)
2020/09/29 Python
CSS3中HSL和HSLA的简单使用示例
2015/07/14 HTML / CSS
美国价格实惠的在线眼镜网站:Zeelool
2020/12/25 全球购物
父亲追悼会答谢词
2014/01/17 职场文书
《棉鞋里的阳光》教学反思
2014/04/24 职场文书
竞聘演讲稿精彩开头和结尾
2014/05/14 职场文书
2016大学自主招生推荐信范文
2015/03/23 职场文书
学校捐书倡议书
2015/04/27 职场文书
2015年高一班主任工作总结
2015/05/13 职场文书
公司晚会主持词
2019/04/17 职场文书
成本低的5个创业项目:投资小、赚钱快
2019/08/20 职场文书