python-3.x 在eventhub触发的azure函数中处理事件批处理

fdx2calv  于 2022-11-26  发布在  Python
关注(0)|答案(1)|浏览(136)

正在编写事件发布者和使用者。正在尝试使用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)函数,因为我从一些网站得到了一个示例代码)

vxqlmq5t

vxqlmq5t1#

它完全取决于您接收事件的方式,即,您是在EventHubConsumerClient类上使用receive还是receive_batch方法。
根据您的代码,我假设您使用的是receive,因此您的处理程序将逐个处理事件。
有关如何利用receivereceive_batch的更多信息,请查看receive的官方示例。

相关问题