python判断队列是否为空_python – Kombu RabbitMQ:检查队列是否为空

建筑

考虑具有DB记录的系统.每条记录都可以处于实时或过期状态;应使用外部软件模块定期处理实时记录.

我使用Kombu和RabbitMQ的经典制作人 – 消费者架构解决了这个问题.生产者每隔几秒从DB中提取记录,消费者处理它们.

问题

现场活动的数量变化很大,在高峰时段,消费者无法处理负载,并且队列被数千个项目堵塞.

我想使系统自适应,以便生产者在队列为空时不会向消费者发送新事件.

我试过了什么

>搜索Kombu文档/ API

>检查Queue对象

>使用RabbitMQ REST API:http://< host>:< port / api / queues /< vhost> /< queue_name>.它有效,但它是另一种维护机制,我更喜欢Kombu中的优雅解决方案.

如何使用Python的Kombu检查RabbitMQ是否为空?

最佳答案 您可以在kombu Queue对象上调用queue_declare().

根据docs函数返回:

Returns a tuple containing 3 items:

the name of the queue (essential for automatically-named queues)

message count

consumer count

因此你可以这样做:

name, msg_count, consumer_count = queue.queue_declare()

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值