RabbitMQ中的应答参数
-
生成者模式
在生产者模式中,不需要进行改动
import pika connection = pika.BlockingConnection(pika.ConnectionParameters(host='localhost')) channel = connection.channel() channel.queue_declare(queue='hello', durable=True, passive=True) channel.basic_publish(exchange='', # 交换机模式 routing_key='hello', # 队列名称 body='我真机智啊!', # body消息内容 ) print(" [x] Sent 'Hello World!'") connection.close()
-
消费者模式
- 需要把auto_ack指定为False,(默认就是为False)
- 在回调函数里面进行通知RabbitMQ,这个消息我已经处理完了,可以移除了
import pika connection = pika.BlockingConnection(pika.ConnectionParameters(host='localhost')) channel = connection.channel() channel.queue_declare(queue='hello') def callback(ch, method, properties, body): print('获取到的数据是{}'.format(body)) ch.basic_ack(delivery_tag=method.delivery_tag) # 告诉队列消息这个消息我处理完了,可以进行删除了 channel.basic_consume( queue='hello', auto_ack=False, # 默认不应达 on_message_callback=callback ) print(' [*] Waiting for messages. To exit press CTRL+C') channel.start_consuming()