RabbitMQ消费者消息权重,

时间:2021-10-09 14:38:51

有的消费者处理速度快,有的消费者处理速度慢,我们想给处理快的多发消息,处理慢的少发消息,

怎么办呢?按照之前的轮询模式,肯定不行的,这里可以检测消息数量,如果消费者正在处理就不给他发

....
def callback(ch, method, properties, body):
    print("--->:",ch,properties)
    time.sleep(10)
    print("received: ", body)
    ch.basic_ack(delivery_tag=method.delivery_tag)

# 消费者端加这句话,表示消息限制数量
channel.basic_qos(prefetch_count=1)

channel.basic_consume(callback,
                      queue='q1',
                      )
....