python RabbitMq的订阅

野生程序猿-杂烧4年前随意分享997

【test_RabbitMq1.py】

import pika
import json

credentials = pika.PlainCredentials('test', 'test')  # mq用户名和密码
connection = pika.BlockingConnection(pika.ConnectionParameters(host = '42.192.14.149',port = 5672,virtual_host = '/test',credentials = credentials))
channel=connection.channel()
# 声明exchange,由exchange指定消息在哪个队列传递,如不存在,则创建。durable = True 代表exchange持久化存储,False 非持久化存储
channel.exchange_declare(exchange = 'python-test',durable = True, exchange_type='fanout')
for i in range(2000):
    message=json.dumps({'OrderId':"1000%s"%i})
# 向队列插入数值 routing_key是队列名。delivery_mode = 2 声明消息在队列中持久化,delivery_mod = 1 消息非持久化。routing_key 不需要配置
    channel.basic_publish(exchange = 'python-test',routing_key = '',body = message,
                          properties=pika.BasicProperties(delivery_mode = 2))
    print(message)
connection.close()

【test_RabbitMq2.py】

import pika


credentials = pika.PlainCredentials('test', 'test')  # mq用户名和密码
connection = pika.BlockingConnection(pika.ConnectionParameters(host = '42.192.14.149',port = 5672,virtual_host = '/test',credentials = credentials))

channel = connection.channel()
# 创建临时队列,队列名传空字符,consumer关闭后,队列自动删除
result = channel.queue_declare('',exclusive=True)
# 声明exchange,由exchange指定消息在哪个队列传递,如不存在,则创建。durable = True 代表exchange持久化存储,False 非持久化存储
channel.exchange_declare(exchange = 'python-test',durable = True, exchange_type='fanout')
# 绑定exchange和队列  exchange 使我们能够确切地指定消息应该到哪个队列去
channel.queue_bind(exchange = 'python-test',queue = result.method.queue)
# 定义一个回调函数来处理消息队列中的消息,这里是打印出来
def callback(ch, method, properties, body):
    ch.basic_ack(delivery_tag = method.delivery_tag)
    print(body.decode())

channel.basic_consume(result.method.queue,callback,# 设置成 False,在调用callback函数时,未收到确认标识,消息会重回队列。True,无论调用callback成功与否,消息都被消费掉
                      auto_ack = False)
channel.start_consuming()


标签: RabbitMqpython

相关文章

按键精灵+大漠插件 打boss(脚本demo2)

前面介绍了大漠插件,这里再来个复杂点的打boss脚本Rem 开始循环检查进入副本 //激活窗口 Call Plugin.WindowEx5_01.SendMouse(h...

聊一下大环境,惨

先前刚学习并且用在工作中的尤其框架egret即将宣告破产了,群里炸开锅了。前端群里大伙都是失业状态,惨惨惨。前端群有个群改成“H5再就业了”真的是挺愁的,大环境不好就算了,疫情也如此严峻。另个上海ph...

python多数据库+memcache操作练习

import function import math import threading from pymemcache.client.base ...

开发UI框架:【laylte】Svelte版LAYUI(缓一下,继续钻研一下填填坑)

开发UI框架:【laylte】Svelte版LAYUI(缓一下,继续钻研一下填填坑)

接下来准备做全局的方法了,象弹窗,还是希望尽量做到一句话调用。layui的弹窗组件里有一个tips功能,把我难住了。感觉这个jquery比较容易实现。有这样一个场景,滚动的页面里如果有tips功能,需...

GPS经纬度坐标系转换【js版】

万能的javascript版也来了,前端、后端nodejs都能用。<html> <body> <script>  /**   ...

GPS经纬度坐标系转换【python版】

再补充个python版的gps经纬度坐标系,在脚本处理数据的时候python,nodejs要比php性能好很多。尤其是他们更擅长多线程# -*- coding: UTF-...