Как отправить несколько сообщений в Eventhub с помощью 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" }')

Я думаю, что это возможно, потому что в инструкции написано:

«Содержимое события - это сообщение о событии или строка в кодировке JSON, содержащая несколько сообщений».

Ссылка на руководство


person Andrea Cattaneo    schedule 31.05.2016    source источник


Ответы (1)


Попробуйте заменить содержание события таким форматом,

[{"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" }]')

Для получения дополнительной информации см. концентраторы событий (классический) REST.

person Derek    schedule 01.06.2016