rabbitmq requeue

create
credentials = pika.PlainCredentials(username='mq', password='654321')
connection = pika.BlockingConnection(
        pika.ConnectionParameters(
            host='localhost', port=5672, virtual_host='/',
            credentials=credentials
        )
    )
if connection.is_closed:
    print('connection to node failed')

channel = connection.channel()

# create exchange
channel.exchange_declare(
    exchange='test',
    exchange_type='fanout'
)

# create queue创建队列
channel.queue_declare(queue='test', durable=True)

# queue bind to exchange
channel.queue_bind(exchange='test', queue='test', routing_key='t')

queue_info = requests.get(url='http://localhost:15672/api/queues', auth=('mq', '654321'))
print(queue_info.content.decode())
exchange_info = requests.get(url='http://localhost:15672/api/exchanges', auth=('mq', '654321'))
print(exchange_info.content.decode())
exit()
exit()
queue info队列信息
{
    "messages_details":{
        "rate":0
    },
    "messages":0,
    "messages_unacknowledged_details":{
        "rate":0
    },
    "messages_unacknowledged":0,
    "messages_ready_details":{
        "rate":0
    },
    "messages_ready":0,
    "reductions_details":{
        "rate":0
    },
    "reductions":4588,
    "node":"mq@he",
    "arguments":{

    },
    "exclusive":false,
    "auto_delete":false,
    "durable":true,
    "vhost":"/",
    "name":"test",
    "message_bytes_paged_out":0,
    "messages_paged_out":0,
    "backing_queue_status":{
        "mode":"default",
        "q1":0,
        "q2":0,
        "delta":[
            "delta",
            "undefined",
            0,
            0,
            "undefined"
        ],
        "q3":0,
        "q4":0,
        "len":0,
        "target_ram_count":"infinity",
        "next_seq_id":0,
        "avg_ingress_rate":0,
        "avg_egress_rate":0,
        "avg_ack_ingress_rate":0,
        "avg_ack_egress_rate":0
    },
    "head_message_timestamp":null,
    "message_bytes_persistent":0,
    "message_bytes_ram":0,
    "message_bytes_unacknowledged":0,
    "message_bytes_ready":0,
    "message_bytes":0,
    "messages_persistent":0,
    "messages_unacknowledged_ram":0,
    "messages_ready_ram":0,
    "messages_ram":0,
    "garbage_collection":{
        "minor_gcs":3,
        "fullsweep_after":65535,
        "min_heap_size":233,
        "min_bin_vheap_size":46422,
        "max_heap_size":0
    },
    "state":"running",
    "recoverable_slaves":null,
    "consumers":0,
    "exclusive_consumer_tag":null,
    "policy":null,
    "consumer_utilisation":null,
    "idle_since":"2018-01-24 7:47:07",
    "memory":34720
}
exchange info
{
    "name":"test",
    "vhost":"/",
    "type":"fanout",
    "durable":false,
    "auto_delete":false,
    "internal":false,
    "arguments":{

    }
}
publish message发布消息
# publish message
channel.basic_publish(
    routing_key='t', body=json.dumps({'test': 'test'}),
    properties=pika.BasicProperties(delivery_mode=2),
    exchange='test'
)
receive queue接收消息
# receive queue


def methods(ch, method, properties, body):
    print(body)
    # ch.basic_ack(delivery_tag=method.delivery_tag)
channel.basic_consume(consumer_callback=methods, queue='test')
channel.start_consuming()
result
b'{"test": "test"}'
set attribute requeue
def methods(ch, method, properties, body):
    print(body)
    # ch.basic_ack(delivery_tag=method.delivery_tag)
channel.basic_recover(requeue=True)
channel.basic_consume(consumer_callback=methods, queue='test')
channel.start_consuming()

开启多个消费者时,当某个消费者宕了时会把消息分发到其它消费者处理,可以开启多个消费者测试一下

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值