Python RabbitMQ消息持久化
- channel.queue_declare(queue='hello1',durable=True)
- properties = pika.BasicProperties(delivery_mode = 2,)
- #!/usr/bin/env python
- import pika
- # 通过实例创建socket
- connection = pika.BlockingConnection(
- pika.ConnectionParameters('localhost')
- )
- # 声明一个管道/在管道内发消息
- channel = connection.channel()
- # 管道内,声明一个队列,queue=queue的名字
- # durable=True持久话队列
- channel.queue_declare(queue='hello10',durable=True)
- # routing_key = queue的名字
- # body = 消息内容
- # properties = pika.BasicProperties 持久话参数,可在()加入定义参数
- # delivery_mode =2 持久化消息
- # 一个消息不能直接发送到队列,它总是需要经过一个exchange。
- channel.basic_publish(exchange='',
- routing_key='hello10',
- body='Hello World!',
- properties = pika.BasicProperties(
- delivery_mode = 2,)
- )
- print(" [x] Sent 'Hello World!'")
- # 关闭队列
- connection.close()
- #_*_coding:utf-8_*_
- __author__ = 'Alex Li'
- import pika,time
- # 实例话创建socket
- connection = pika.BlockingConnection(
- pika.ConnectionParameters('localhost'))
- # 声明一个管道/在管道内发消息
- channel = connection.channel()
- # 为什么再次声明queue名字:如果消费者先运行了,没有声明queue就会报错
- # 如果想要防止报错发生,就要定义queue。
- #
- # 管道内,声明一个队列,queue=queue的名字
- # durable=True持久话队列
- channel.queue_declare(queue='hello10',durable=True)
- #回调函数
- # ch 管道内存对象地址
- # method 消息发给哪个queue
- # body = 消息内容
- def callback(ch, method, properties, body):
- print(" [x] Received %r" % body)
- #time.sleep(10)
- # 消息处理完后会向生产端发送确认指令
- ch.basic_ack(delivery_tag=method.delivery_tag)
- # 消费消息
- # callback 如果收到消息,就调用callback函数来处理消息
- # queue 管道内的队列名字
- # no_ack = True 这条消息出没处理完都不会给服务端发确认
- channel.basic_consume(
- callback,
- queue='hello10',)
- print(' [*] Waiting for messages. To exit press CTRL+C')
- # 启动后一直运行,没有数据会等待..
- channel.start_consuming()
Python RabbitMQ消息持久化的更多相关文章
- rabbitmq 消息持久化
rabbitmq 消息持久化 2016-02-18 11:19 224人阅读 评论(0) 收藏 举报 分类: 综合(15) 版权声明:本文为博主原创文章,未经博主允许不得转载. 二: 任务分发 & ...
- Python RabbitMQ消息队列
python内的队列queue 线程 queue:不同线程交互,不能夸进程 进程 queue:只能用于父进程与子进程,或者同一父进程下的多个子进程,进行交互 注:不同的两个独立进程是不能交互的. ...
- Python RabbitMQ 消息队列
RabbitMQ是一个在AMQP基础上完整的,可复用的企业消息系统.他遵循Mozilla Public License开源协议. MQ全称为Message Queue, 消息队列(MQ)是一种应用程序 ...
- rabbitmq 消息持久化之receive and send
二: 任务分发 &消息持久化 启用多个接收端的时候如果某一个receive 关闭要保证消息有反馈是否收到 send端 #-*- coding: UTF-8 -*-import pika ...
- Rabbitmq消息持久化
1.交换机持久化设置 exchange 持久化,在声明时指定 durable未true 2.队列持久化设置 queue 持久化,在声明时指定 durable 为true 3.消息持久化设置 Deliv ...
- Python RabbitMQ消息分发轮询
1.收消息:一对多,默认依次轮询的发给每个消费端. 2.消息确认:默认RabbitMQ不会设置no_ack=Ture,意思是,当生产者给消费者发送发送消息时,消费者处理这个消息,处理完后会手动确认发送 ...
- RabbitMQ原理与相关操作(三)消息持久化
现在聊一下RabbitMQ消息持久化: 问题及方案描述 1.当有多个消费者同时收取消息,且每个消费者在接收消息的同时,还要处理其它的事情,且会消耗很长的时间.在此过程中可能会出现一些意外,比如消息接收 ...
- Python操作rabbitmq消息队列持久化
消息队列持久化 Python操作rabbit消息队列的持久化,如下: # 创建一个名为balance的队列,对queue进行durable持久化设为True(持久化第一步)channel.queue_ ...
- 【python】-- RabbitMQ 队列消息持久化、消息公平分发
RabbitMQ 队列消息持久化 假如消息队列test里面还有消息等待消费者(consumers)去接收,但是这个时候服务器端宕机了,这个时候消息是否还在? 1.队列消息非持久化 服务端(produc ...
随机推荐
- [WCF] Restful 自定义宿主
IPersonRetriever: /* * 由SharpDevelop创建. * 用户: Administrator * 日期: 2017/6/2 * 时间: 22:13 * * 要改变这种模板请点 ...
- Gym 101972
F读错题wa了三个小时.自闭了,不然I题有可能能出的..已经想到组合数也敲完组合数板子了. A:这...**题吧,第一眼看的这个就秒了 #include<bits/stdc++.h> #d ...
- 算法提高 新建Microsoft Word文档
算法提高 新建Microsoft Word文档 时间限制:1.0s 内存限制:256.0MB 问题描述 L正在出题,新建了一个word文档,想不好取什么名字,身旁一人惊问:“你出 ...
- Nestjs 序列化(Serialization)
文档 在发送实际响应之前,Serializers为数据操作提供了干净的抽象层.例如,应始终从最终响应中排除敏感数据(如用户密码) λ yarn add class-transformer cats.e ...
- 接口自动化测试 (三)request.post
上一节介绍了 requests.get() 方法的基本使用,本节介绍 requests.post() 方法的使用: 本文目录: 一.方法定义 二.post方法简单使用 1.带数据的post 2 ...
- 线程安全 Thread Safety Problem scala concurrency 并发
小结: 1.基于java并发模型 Scala concurrency is built on top of the Java concurrency model. 2. 将每个请求放入一个新的线程 T ...
- what's the 跳空
出自 MBA智库百科(https://wiki.mbalib.com/) 什么是跳空 跳空在日语中叫“窗口”,英语是“gap”,又称为即价格跳空,是指汇率在快速波动时产生的曲线的最低价与曲线的最高价之 ...
- python日期加减法操作
对日期的一些操作: 对日期的一些操作: 1 #日期转化为字符串并得到指定(或系统日期)n天后的日期--@Eillot 2 def dataTimeToString(dsNow=ReservationT ...
- 【UML】NO.47.EBook.5.UML.1.007-【UML 大战需求分析】- 部署图(Deployment Diagram)
1.0.0 Summary Tittle:[UML]NO.47.EBook.1.UML.1.007-[UML 大战需求分析]- 部署图(Deployment Diagram) Style:Design ...
- Ch02 控制结构和函数 - 练习
1. 一个数字如果为正数,则它的signum为1:如果是负数,则signum为-1:如果是0,则signum为0.编写一个函数来计算这个值. scala> def signum(x:Int):I ...