正在编写事件发布者和使用者。正在尝试使用eventhub_client.send_batch(batch)
将事件作为批处理从发布者发送
现在在消费者端我正在接收事件并使用
if e.get_body() is not None:
try:
str = e.get_body().decode("utf-8")
msg = ast.literal_eval(str)
props = e.metadata.get('Properties')
do_something(msg, props)
except Exception as e:
print(e)
我有两个问题
1.当我运行消费者(发布者发布了一个包含10个事件的批处理)时,我会收到一个批处理还是单个事件
1.我是否处理了Consumer中的所有事件?我不确定我的Consumer是否处理了所有10个事件。
有人能澄清上述问题,并帮助我完善消费者代码,如果有更好的方式来处理事件(我不确定为什么要使用ast.literal_eval(str)函数,因为我从一些网站得到了一个示例代码)
1条答案
按热度按时间vxqlmq5t1#
它完全取决于您接收事件的方式,即,您是在
EventHubConsumerClient
类上使用receive
还是receive_batch
方法。根据您的代码,我假设您使用的是
receive
,因此您的处理程序将逐个处理事件。有关如何利用
receive
和receive_batch
的更多信息,请查看receive
的官方示例。