airflow.providers.microsoft.azure.hooks.asb

模块内容

BaseAzureServiceBusHook

BaseAzureServiceBusHook 类,用于创建会话并使用连接字符串创建连接。

AdminClientHook

与 ServiceBusAdministrationClient 交互。

MessageHook

与 ServiceBusClient 交互。

属性

MessageCallback

airflow.providers.microsoft.azure.hooks.asb.MessageCallback[来源]
class airflow.providers.microsoft.azure.hooks.asb.BaseAzureServiceBusHook(azure_service_bus_conn_id=default_conn_name)[来源]

基类: airflow.hooks.base.BaseHook

BaseAzureServiceBusHook 类,用于创建会话并使用连接字符串创建连接。

参数

azure_service_bus_conn_id (str) – 指向 Azure 服务总线连接 的引用。

conn_name_attr = 'azure_service_bus_conn_id'[来源]
default_conn_name = 'azure_service_bus_default'[来源]
conn_type = 'azure_service_bus'[来源]
hook_name = 'Azure 服务 总线'[来源]
classmethod get_connection_form_widgets()[来源]

返回要添加到连接表单的连接小部件。

classmethod get_ui_field_behaviour()[来源]

返回自定义字段行为。

abstract get_conn()[来源]

返回 hook 的连接。

class airflow.providers.microsoft.azure.hooks.asb.AdminClientHook(azure_service_bus_conn_id=default_conn_name)[来源]

基类: BaseAzureServiceBusHook

与 ServiceBusAdministrationClient 交互。

这可以创建、更新、列出和删除服务总线命名空间的资源。此 hook 使用从基类继承的相同的 Azure 服务总线客户端连接。

get_conn()[来源]

创建 ServiceBusAdministrationClient 实例。

这使用连接详细信息中的连接字符串。

create_queue(queue_name, max_delivery_count=10, dead_lettering_on_message_expiration=True, enable_batched_operations=True)[来源]

通过连接到服务总线管理客户端创建队列,返回 QueueProperties。

参数
  • queue_name (str) – 队列的名称或带有名称的 QueueProperties。

  • max_delivery_count (int) – 最大传送计数。消息在此传送次数后会自动死信。默认值为 10。

  • dead_lettering_on_message_expiration (bool) – 一个值,指示当消息过期时,此订阅是否支持死信。

  • enable_batched_operations (bool) – 一个值,指示是否启用服务器端批量操作。

delete_queue(queue_name)[来源]

通过服务总线命名空间中的 queue_name 删除队列。

参数

queue_name (str) – 队列的名称或带有名称的 QueueProperties。

delete_subscription(subscription_name, topic_name)[来源]

删除服务总线命名空间下的主题订阅实体。

参数
  • subscription_name (str) – 将在主题中拥有该规则的订阅名称

  • topic_name (str) – 将拥有订阅规则的主题。

class airflow.providers.microsoft.azure.hooks.asb.MessageHook(azure_service_bus_conn_id=default_conn_name)[来源]

基类: BaseAzureServiceBusHook

与 ServiceBusClient 交互。

这充当获取 ServiceBusSender 和 ServiceBusReceiver 的高级接口。

get_conn()[来源]

使用连接详细信息中的连接字符串创建并返回 ServiceBusClient。

send_message(queue_name, messages, batch_message_flag=False)[源代码]

使用 ServiceBusClient Send 将消息发送到一个服务总线队列。

通过使用 batch_message_flag,可以启用并以批量消息的形式发送消息。

参数
  • queue_name (str) – 队列的名称或带有名称的 QueueProperties。

  • messages (str | list[str]) – 需要发送到队列的消息。它可以是字符串或字符串列表。

  • batch_message_flag (bool) – 布尔标志,如果需要将消息作为批量消息发送,可以设置为 True。

static send_list_messages(sender, messages)[源代码]
static send_batch_message(sender, messages)[源代码]
receive_message(queue_name, context, max_message_count=1, max_wait_time=None, message_callback=None)[源代码]

在指定的队列名称中一次接收一批消息。

参数
  • queue_name (str) – 队列的名称或带有名称的 QueueProperties。

  • max_message_count (int | None) – 批次中消息的最大数量。

  • max_wait_time (float | None) – 等待第一条消息到达的最大时间(以秒为单位)。

  • message_callback (MessageCallback | None) – 用于处理每条消息的可选回调。如果未提供,则将记录并完成消息。如果提供,并且抛出异常,则将放弃该消息以便将来重新投递。

receive_subscription_message(topic_name, subscription_name, context, max_message_count, max_wait_time, message_callback=None)[源代码]

一次接收一批订阅消息。

如果您希望同时处理多条消息,或者执行一次性接收作为单个调用,则此方法是最佳选择。

参数
  • subscription_name (str) – 将在主题中拥有该规则的订阅名称

  • topic_name (str) – 将拥有订阅规则的主题。

  • max_message_count (int | None) – 批次中消息的最大数量。实际返回的数量将取决于 prefetch_count 和传入流速率。设置为 None 将完全取决于预取配置。默认值为 1。

  • max_wait_time (float | None) – 等待第一条消息到达的最大时间(以秒为单位)。如果没有消息到达,并且没有指定超时,则此调用将不会返回,直到连接关闭。如果指定了超时,并且在超时期间没有消息到达,则将返回一个空列表。

此条目是否有帮助?