consumer_lazy.py 767 B

1234567891011121314151617181920212223242526
  1. # -*- coding: utf-8 -*-
  2. import pika
  3. import time
  4. user_info = pika.PlainCredentials('user', 'Un2yzriWm7veSDoh')
  5. params = pika.ConnectionParameters('rabbitmq.rabbitmq.svc.cluster.local', 5672, '/', user_info)
  6. conn = pika.BlockingConnection(params)
  7. ch = conn.channel()
  8. # 1. 声明惰性队列
  9. ch.queue_declare(
  10. queue='lazy_queue',
  11. durable=True,
  12. arguments={'x-queue-mode': 'lazy'} # 这就是全部魔法
  13. )
  14. print(' [*] Waiting messages on lazy_queue (Ctrl+C to quit)')
  15. def callback(ch, method, props, body):
  16. print(' [x] Received:', body.decode())
  17. time.sleep(1) # 模拟慢速消费
  18. ch.basic_ack(method.delivery_tag)
  19. ch.basic_qos(prefetch_count=10)
  20. ch.basic_consume(queue='lazy_queue', on_message_callback=callback)
  21. ch.start_consuming()