Azure Eventhub Python - OWNERSHIP_LOST(所有权丢失)

问题描述 投票:0回答:1

我已经复制粘贴了这个脚本,效果很好。我从eventhub获取了所有的事件。

import logging
from azure.eventhub import EventHubConsumerClient

connection_str = '<< CONNECTION STRING FOR THE EVENT HUBS NAMESPACE >>'
consumer_group = '<< CONSUMER GROUP >>'
eventhub_name = '<< NAME OF THE EVENT HUB >>'
client = EventHubConsumerClient.from_connection_string(connection_str, consumer_group, eventhub_name=eventhub_name)

logger = logging.getLogger("azure.eventhub")
logging.basicConfig(level=logging.INFO)

def on_event(partition_context, event):
    logger.info("Received event from partition {}".format(partition_context.partition_id))
    partition_context.update_checkpoint(event)

with client:
    client.receive(
        on_event=on_event, 
        starting_position="-1",  # "-1" is from the beginning of the partition.
    )
    # receive events from specified partition:
    # client.receive(on_event=on_event, partition_id='0')

但是,一旦我试图从事件中获取任何值,我就会得到一个 OWNERSHIP_LOST 异常,而且脚本也没有检索到任何东西。

我试过 event.body.KEY, event.KEY, json.loads(event)['body']['key'], json.loads(event)['key'].无论我尝试与 events 它引发 OWNERSHIP_LOST。

你知道有什么解决方法吗,或者你知道我在这里做错了什么吗?

python azure-eventhub
1个回答
0
投票

OWNERSHIP_LOST可能是由于接收事件时出错,或者on_event中出错造成的。 你可以试试event.body_as_json()['key']吗?

© www.soinside.com 2019 - 2024. All rights reserved.