今天使用rabbitmq的confirm模式,書上介紹的是pika版本是0.9.6,可是我用的是別的版本,發現這樣的錯誤html
Traceback (most recent call last):
File "hello_world_producer1.py", line 27, in <module>
channel.confirm_delivery(confirm_handler)
TypeError: confirm_delivery() takes exactly 1 argument (2 given)python
看官網後發現錯了,應該改爲下面的樣式:git
#!/usr/bin/env python #coding:utf-8 import pika,sys github
from pika import spec credentials=pika.PlainCredentials('guest','guest') app
conn_params=pika.ConnectionParameters('localhost',credentials=credentials) conn_broker=pika.BlockingConnection(conn_params) channel=conn_broker.channel()code
channel.confirm_delivery()htm
#channel.confirm_delivery() rabbitmq
msg=sys.argv[1] utf-8
msg_props=pika.BasicProperties() it
msg_props.content_type="text/plain" msg_ids=[]
if channel.basic_publish(body=msg, exchange="hello-exchange", properties=msg_props, routing_key='hola'):
print 'Confirm receive!'
else:
print 'Message lost'
#msg_ids.append(len(msg_ids)+1)
channel.close()
##這裏參考https://github.com/rabbitinaction/sourcecode/issues/9
##https://pika.readthedocs.io/en/latest/examples/blocking_delivery_confirmations.html