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 ...
随机推荐
- 关于v$librarycache的几个字段含义
对v$librarycache中的get,pin和reload的含义: Gets: (Parse) The number of lookups for objects of the namespace ...
- Golang 的 协程调度机制 与 GOMAXPROCS 性能调优
作者:林冠宏 / 指尖下的幽灵 掘金:https://juejin.im/user/587f0dfe128fe100570ce2d8 博客:http://www.cnblogs.com/linguan ...
- 【CF480D】Parcels DP
[CF480D]Parcels 题意:有一个栈,有n个物品,每个物品可以选或不选.如果选了第i个物品,则获得$v_i$的收益,且第i个物品必须在$in_i$时刻入栈,$out_i$时刻出栈.每个物品还 ...
- HBuilder控制台集成命令提示符(终端/CMD)功能
参考:https://jingyan.baidu.com/album/6b97984dc9cda31ca2b0bf00.html?picindex=3
- Skip the Class
BestCoder Round #92 Skip the Class Accepts: 678 Submissions: 1285 Time Limit: 2000/1000 MS (Java/ ...
- 微信原始坐标转换成百度坐标 lat lng
如有帮到你记得结合我这篇博客里的方法.... http://www.cnblogs.com/zc290987034/p/8294988.html {:wx_jssdk_config("fal ...
- Can't connect to MySQL server (10060) MySQL
x 搜索了一下N篇解决方案都是在说以下3种原因... .{"防火墙的问题":["防火墙未关闭","服务器上防火墙端口未开放"]} 2.[&q ...
- Gym 101194D / UVALive 7900 - Ice Cream Tower - [二分+贪心][2016 EC-Final Problem D]
题目链接: http://codeforces.com/gym/101194/attachments https://icpcarchive.ecs.baylor.edu/index.php?opti ...
- OA流程分析
OA流程分析: 1. 流程定义:可视化可拖拽的流程环节设置,流程定义完成后保存在数据表中,字段有流程ID,名称,流程流转环节. 2. 画业务表单,新建业务数据表. 3. 表单数据填好后,启动流程:
- 初试kotlin:用Kotlin开发桌面/CommandLine 工具
既然kotlin是google和jetbrain联合搞的,开发环境不用说了肯定是Intellij Idea了. 先创建一个kotlin项目. 先来一个HelloWorld package com.xi ...