python-2.7 - 使用 azure-event-hubs-python 从多个分区获取事件?

标签 python-2.7 azure amqp azure-eventhub

我遵循此处给出的说明https://github.com/Azure/azure-event-hubs-python/tree/master

但我不确定如何使用多个分区。

我尝试做这样的事情

for partition in range(0, 4):
    EventHubClient(ADDRESS).subscribe(MyReceiver(str(partition)), CONSUMER_GROUP, str(partition), OFFSET).run()

但它只为分区 0 创建接收器并仅监听它。有没有简单的方法来创建多个接收器来监听不同分区上的事件。

我也尝试过使用

for partition in range(0, 4):
    EventHubClient(ADDRESS).subscribe(MyReceiver(str(partition)), CONSUMER_GROUP, str(partition), OFFSET).run_daemon()

它创建了多个接收器,但我实际上没有获取数据。

最佳答案

run 方法被阻塞。事件被传递到 MyReceiver 的回调。要订阅多个分区,请尝试以下操作,

EventHubClient(ADDRESS).subscribe(MyReceiver("0"), CONSUMER_GROUP, "0", OFFSET)
    .subscribe(MyReceiver("1"), CONSUMER_GROUP, "1", OFFSET)
    .subscribe(MyReceiver("2"), CONSUMER_GROUP, "2", OFFSET)
    .subscribe(MyReceiver("3"), CONSUMER_GROUP, "3", OFFSET)
    .run()

方法 run_daemon 在专用线程上运行客户端,以便应用程序可以在需要时调用 Receiver.receive 方法来获取消息。您可以用同样的方式订阅多个分区。

关于python-2.7 - 使用 azure-event-hubs-python 从多个分区获取事件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49854910/

相关文章:

python - BeautifulSoup4 stripped_strings 给我字节对象?

python - 如何控制python的ThreadPoolExecutor的吞吐速度?

python - Django Rest Framework 文档中不显示具有多个方法的多个嵌套资源

Python:如何使用 OpenCV 在单击时从网络摄像头捕获图像

java - Application Insights 支持 java 的多环境

failover - 如何进行 RabbitMQ 队列故障转移?

node.js - 如何在 Node Js 中使用和发布来自 Amazon MQ 的消息?

azure - 是否可以让 Windows Azure 模拟器将浏览器打开到 127.0.0.1 以外的 URL

azure - 如何获取Azure数据工厂管道的静态IP?

java - ServiceBus over AMQP 关闭消费者