现在我正在学习如何使用python处理Azure的实时数据。代码如下:
from azure.servicebus import ServiceBusService
from azure.servicebus import Message
import traceback
api_key = {'namespace': '###',
'policy_name': '####',
'policy_secret': '#####'
}
sbs = ServiceBusService(api_key["namespace"], shared_access_key_name=api_key["policy_name"], shared_access_key_value=api_key["policy_secret"])
msg = Message('Hello World!')
while True:
sbs.send_queue_message('taskqueue', msg)
print 'sending done'
try:
msg_rcv = sbs.receive_queue_message('taskqueue', peek_lock=True)
if msg_rcv and msg_rcv.body:
print 'Message received: {0}'.format(msg_rcv.body)
msg_rcv.delete()
except Exception:
print traceback.print_exc()
发送部分工作正常,但我无法正确接收队列。追溯是:
Traceback (most recent call last):
File "queue_sending.py", line 35, in <module>
msg_rcv = sbs.receive_queue_message('taskqueue', peek_lock=True)
...
ValueError: could not convert string to float: max-age=31536000
我搜索了这个值错误。流行的答案是,这是版本0.20.1中的错误。但我的azure-servicebus
的版本是0.21.1。所以我试过的:
azure-servicebus
下调至0.20.2。两者都不起作用。有人可以给我一个暗示我犯了错误的地方吗?非常感谢!
这确实固定在0.20.2(我做了修复:))。如果您100%确定在0.21.1中有此错误,请在https://github.com/Azure/azure-sdk-for-python/issues中使用FULL堆栈跟踪和Python版本,操作系统等一些信息创建一个问题。
(我拥有这个包并在MS上工作)