如何使用 python 向 eventhub 发送多条消息

How to send multiple messages to eventhub using python

我已经使用 C# 库发送了批处理消息。 我想用 python 做同样的事情,怎么办? 实际上我可以发送单个消息,但批量发送会增加我的吞吐量。 这是代码:

from azure.servicebus import ServiceBusService

key_name = 'RootManageSharedAccessKey' # SharedAccessKeyName from Azure portal
key_value = '' # SharedAccessKey from Azure portal
sbs = ServiceBusService(service_namespace,
                        shared_access_key_name=key_name,
                        shared_access_key_value=key_value)

sbs.send_event('myhub', '{ "DeviceId":"dev-01", "Temperature":"37.0" }')

我认为这是可能的,因为手册上写着:

"The event content is the event message or JSON-encoded string that contains multiple messages."

Link to the manual

尝试将活动内容替换成这样的格式,

[{"Body":"Message1"},{"Body":"Message2"},{"Body":"Message3"}]

所以完整的代码是这样的,

from azure.servicebus import ServiceBusService

key_name = 'RootManageSharedAccessKey' # SharedAccessKeyName from Azure portal
key_value = 'hdckR8xd*********************u5a84RoZSQHE=' # SharedAccessKey from Azure portal
service_namespace = 'myservice-ns' # service bus namespace

sbs = ServiceBusService(service_namespace,
                        shared_access_key_name=key_name,
                        shared_access_key_value=key_value)

sbs.create_event_hub('myhub')

sbs.send_event('myhub', '[{"name":"derek", "gender":"male"},{ "DeviceId":"dev-01", "Temperature":"37.0" }]')

参考Event Hubs (classic) REST了解一些信息。