EventHubProducerClient Classe

A classe EventHubProducerClient define uma interface de alto nível para enviar eventos para o serviço Hubs de Eventos do Azure.

Herança
azure.eventhub.aio._client_base_async.ClientBaseAsync
EventHubProducerClient

Construtor

EventHubProducerClient(fully_qualified_namespace: str, eventhub_name: str, credential: CredentialTypes, *, buffered_mode: bool = False, on_error: Callable[[List[EventData | AmqpAnnotatedMessage], str | None, Exception], Awaitable[None]] | None = None, on_success: Callable[[List[EventData | AmqpAnnotatedMessage], str | None], Awaitable[None]] | None = None, max_buffer_length: int | None = None, max_wait_time: float | None = None, **kwargs: Any)

Parâmetros

fully_qualified_namespace
str
Necessário

O nome de anfitrião completamente qualificado para o espaço de nomes dos Hubs de Eventos. É provável que seja semelhante a .servicebus.windows.net

eventhub_name
str
Necessário

O caminho do Hub de Eventos específico ao qual ligar o cliente.

credential
AsyncTokenCredential ou AzureSasCredential ou AzureNamedKeyCredential
Necessário

O objeto de credencial utilizado para autenticação que implementa uma interface específica para obter tokens. Aceita objetos EventHubSharedKeyCredentialde credenciais ou ou gerados pela biblioteca de identidades do azure e objetos que implementam o método *get_token(auto, âmbitos ).

buffered_mode
bool

Se For Verdadeiro, o cliente de produtor recolherá eventos numa memória intermédia, em lote eficiente e, em seguida, publicará. A predefinição é Falso.

on_success
Optional[Callable[[<xref:SendEventTypes>, Optional[str]], Awaitable[None]]]

A chamada de retorno a ser chamada assim que um lote tiver sido publicado com êxito. A chamada de retorno utiliza dois parâmetros:

  • eventos: a lista de eventos que foram publicados com êxito

  • partition_id: o ID de partição no qual os eventos na lista foram publicados.

A função de chamada de retorno deve ser definida como: on_success(eventos, partition_id). Necessário quando buffered_mode é Verdadeiro enquanto opcional se buffered_mode for Falso.

on_error
Optional[Callable[[<xref:SendEventTypes>, Optional[str], Exception], Awaitable[None]]]

A chamada de retorno a ser chamada depois de um lote não ter sido publicado. Necessário quando no buffered_mode é Verdadeiro enquanto opcional se buffered_mode for Falso. A função de chamada de retorno deve ser definida como: on_error(eventos, partition_id, erro); em que:

  • eventos: a lista de eventos que não foram publicados,

  • partition_id: o ID de partição no qual os eventos na lista foram tentados a publicar e

  • error: A exceção relacionada com a falha de envio.

Se buffered_mode for Falso, on_error chamada de retorno é opcional e os erros serão processados da seguinte forma:

  • Se for transmitida uma chamada de retorno on_error durante a instanciação do cliente do produtor,

    em seguida, as informações de erro serão transmitidas à chamada de retorno on_error , que será chamada.

  • Se uma chamada de retorno de on_error não for transmitida durante a instanciação do cliente,

    em seguida, o erro será gerado por predefinição.

Se buffered_mode for Verdadeiro, on_error chamada de retorno é necessária e os erros serão processados da seguinte forma:

  • Se os eventos não conseguirem colocar a fila dentro do tempo limite especificado, será gerado um erro diretamente.

  • Se os eventos não conseguirem enviar após a colocação em fila com êxito, a chamada de retorno on_error será chamada.

max_buffer_length
int

Apenas modo em memória intermédia. O número total de eventos por partição que podem ser colocados em memória intermédia antes de ser acionada uma descarga. O valor predefinido é 1500 no modo de memória intermédia.

max_wait_time
Optional[float]

Apenas modo em memória intermédia. A quantidade de tempo a aguardar que um lote seja criado com eventos na memória intermédia antes da publicação. O valor predefinido é 1 no modo de memória intermédia.

logging_enable
bool

Se pretende gerar registos de rastreio de rede para o logger. A predefinição é Falso.

auth_timeout
float

O tempo em segundos para aguardar que um token seja autorizado pelo serviço. O valor predefinido é 60 segundos. Se estiver definido como 0, não será aplicado nenhum tempo limite ao cliente.

user_agent
str

Se for especificado, este procedimento será adicionado à frente da cadeia de agente do utilizador.

retry_total
int

O número total de tentativas de refazer uma operação falhada quando ocorre um erro. O valor predefinido é 3.

retry_backoff_factor
float

Um fator de back-off a aplicar entre tentativas após a segunda tentativa (a maioria dos erros é resolvida imediatamente por uma segunda tentativa sem demora). No modo fixo, a política de repetição irá sempre suspender para {backoff factor}. No modo "exponencial", a política de repetição irá suspender para: {backoff factor} * (2 ** ({número de repetições totais} - 1)) segundos. Se o backoff_factor for 0,1, a repetição irá suspender para [0,0s, 0,2s, 0,4s, ...] entre repetições. O valor predefinido é 0,8.

retry_backoff_max
float

O tempo máximo de back-off. O valor predefinido é 120 segundos (2 minutos).

retry_mode
str

O comportamento de atraso entre tentativas de repetição. Os valores suportados são "fixos" ou "exponenciais", em que a predefinição é "exponencial".

idle_timeout
float

Tempo limite, em segundos, após o qual este cliente fechará a ligação subjacente se não existir atividade. Por predefinição, o valor é Nenhum, o que significa que o cliente não será encerrado devido à inatividade, a menos que seja iniciado pelo serviço.

transport_type
TransportType

O tipo de protocolo de transporte que será utilizado para comunicar com o serviço Hubs de Eventos. A predefinição é TransportType.Amqp , caso em que a porta 5671 é utilizada. Se a porta 5671 estiver indisponível/bloqueada no ambiente de rede, pode utilizar TransportType.AmqpOverWebsocket , que utiliza a porta 443 para comunicação.

http_proxy
dict

Definições de proxy HTTP. Este tem de ser um dicionário com as seguintes chaves: "proxy_hostname" (valor de str) e "proxy_port" (valor int). Além disso, também podem estar presentes as seguintes chaves: "nome de utilizador", "palavra-passe".

custom_endpoint_address
Optional[str]

O endereço de ponto final personalizado a utilizar para estabelecer uma ligação ao serviço Hubs de Eventos, permitindo que os pedidos de rede sejam encaminhados através de quaisquer gateways de aplicação ou outros caminhos necessários para o ambiente anfitrião. A predefinição é Nenhuma. O formato seria como "sb://< custom_endpoint_hostname>:<custom_endpoint_port>". Se a porta não for especificada no custom_endpoint_address, será utilizada por predefinição a porta 443.

connection_verify
Optional[str]

Caminho para o ficheiro de CA_BUNDLE personalizado do certificado SSL que é utilizado para autenticar a identidade do ponto final de ligação. A predefinição é Nenhuma, caso em que a certificação.where() será utilizada.

uamqp_transport
bool

Se pretende utilizar a biblioteca uamqp como o transporte subjacente. O valor predefinido é Falso e a biblioteca AMQP de Python Puro será utilizada como o transporte subjacente.

socket_timeout
float

O tempo em segundos que o socket subjacente na ligação deve aguardar ao enviar e receber dados antes de exceder o tempo limite. O valor predefinido é 0,2 para TransportType.Amqp e 1 para TransportType.AmqpOverWebsocket. Se os erros do EventHubsConnectionError estiverem a ocorrer devido ao tempo limite de escrita, poderá ser necessário transmitir um valor maior do que o predefinido. Isto destina-se a cenários de utilização avançada e, normalmente, o valor predefinido deve ser suficiente.

Exemplos

Crie uma nova instância do EventHubProducerClient.


   import os
   from azure.eventhub.aio import EventHubProducerClient, EventHubSharedKeyCredential

   fully_qualified_namespace = os.environ['EVENT_HUB_HOSTNAME']
   eventhub_name = os.environ['EVENT_HUB_NAME']
   shared_access_policy = os.environ['EVENT_HUB_SAS_POLICY']
   shared_access_key = os.environ['EVENT_HUB_SAS_KEY']

   producer = EventHubProducerClient(fully_qualified_namespace=fully_qualified_namespace,
                                     eventhub_name=eventhub_name,
                                     credential=EventHubSharedKeyCredential(shared_access_policy, shared_access_key))

Métodos

close

Feche as ligações e a ligação amQP subjacentes ao cliente produtor.

create_batch

Crie um objeto EventDataBatch com o tamanho máximo de todo o conteúdo a ser restringido por max_size_in_bytes.

O max_size_in_bytes não deve ser maior do que o tamanho máximo de mensagens permitido definido pelo serviço.

flush

Apenas modo em memória intermédia. Remova os eventos na memória intermédia para serem enviados imediatamente se o cliente estiver a trabalhar no modo de memória intermédia.

from_connection_string

Crie um EventHubProducerClient a partir de um cadeia de ligação.

get_buffered_event_count

O número de eventos que estão em memória intermédia e à espera de serem publicados para uma determinada partição. Devolve Nenhum no modo não colocado na memória intermédia. NOTA: a memória intermédia de eventos é processada num corouteno em segundo plano, pelo que o número de eventos na memória intermédia comunicados por esta API deve ser considerado apenas uma aproximação e só é recomendado para utilização na depuração. Para um ID de partição que não tenha eventos em memória intermédia, 0 será devolvido independentemente de esse ID de partição existir realmente no Hub de Eventos.

get_eventhub_properties

Obtenha as propriedades do Hub de Eventos.

As chaves no dicionário devolvido incluem:

  • eventhub_name (str)

  • created_at (UTC datetime.datetime)

  • partition_ids (list[str])

get_partition_ids

Obter IDs de partição do Hub de Eventos.

get_partition_properties

Obtenha as propriedades da partição especificada.

As chaves no dicionário de propriedades incluem:

  • eventhub_name (str)

  • id (str)

  • beginning_sequence_number (int)

  • last_enqueued_sequence_number (int)

  • last_enqueued_offset (str)

  • last_enqueued_time_utc (UTC datetime.datetime)

  • is_empty (bool)

send_batch

Envia um lote de dados de eventos. Por predefinição, o método bloqueará até a confirmação ser recebida ou a operação exceder o limite de tempo. Se o EventHubProducerClient estiver configurado para ser executado no modo de memória intermédia, o método irá colocar os eventos na memória intermédia local e regressar. O produtor fará o envio automático em segundo plano.

Se buffered_mode for Falso, on_error chamada de retorno é opcional e os erros serão processados da seguinte forma:

  • Se for transmitida uma chamada de retorno on_error durante a instanciação do cliente do produtor,

    em seguida, as informações de erro serão transmitidas à chamada de retorno on_error , que será chamada.

  • Se uma chamada de retorno de on_error não for transmitida durante a instanciação do cliente,

    em seguida, o erro será gerado por predefinição.

Se buffered_mode for Verdadeiro, on_error chamada de retorno é necessária e os erros serão processados da seguinte forma:

  • Se os eventos não conseguirem colocar a fila dentro do tempo limite especificado, será gerado um erro diretamente.

  • Se os eventos não conseguirem enviar após a colocação em fila com êxito, a chamada de retorno on_error será chamada.

No modo de memória intermédia, o envio de um lote permanecerá intacto e será enviado como uma única unidade. O lote não será reorganizado. Isto pode resultar em ineficiência no envio de eventos.

Se estiver a enviar uma lista finita de EventData ou AmqpAnnotatedMessage e souber que está dentro do limite de tamanho da moldura do hub de eventos, pode enviá-los com uma chamada send_batch . Caso contrário, utilize create_batch para criar EventDataBatch e adicionar EventData ou AmqpAnnotatedMessage no lote um a um até ao limite de tamanho e, em seguida, chame este método para enviar o lote.

send_event

Envia dados de eventos. Por predefinição, o método bloqueará até a confirmação ser recebida ou a operação exceder o limite de tempo. Se o EventHubProducerClient estiver configurado para ser executado no modo de memória intermédia, o método colocará o evento na memória intermédia local e regressará. O produtor fará o batching automático e o envio em segundo plano.

Se buffered_mode for Falso, on_error chamada de retorno é opcional e os erros serão processados da seguinte forma: * Se for transmitida uma chamada de retorno de on_error durante a instanciação do cliente de produtor,

       then error information will be passed to the *on_error* callback, which will then be called.

  * If an *on_error* callback is not passed in during client instantiation,

       then the error will be raised by default.

Se buffered_mode for Verdadeiro, on_error chamada de retorno é necessária e os erros serão processados da seguinte forma: * Se os eventos não conseguirem colocar em fila dentro do tempo limite especificado, será gerado um erro diretamente.

  * If events fail to send after enqueuing successfully, the *on_error* callback will be called.

close

Feche as ligações e a ligação amQP subjacentes ao cliente produtor.

async close(*, flush: bool = True, **kwargs: Any) -> None

Parâmetros

flush
bool

Apenas modo em memória intermédia. Se estiver definido como Verdadeiro, os eventos na memória intermédia serão enviados imediatamente. A predefinição é Verdadeiro.

timeout
float ou None

Apenas modo em memória intermédia. Tempo limite para fechar o produtor. A predefinição é Nenhuma, o que significa que não há tempo limite.

Tipo de retorno

Exceções

Se ocorreu um erro ao remover a memória intermédia se a descarga estiver definida como Verdadeiro ou fechar as ligações AMQP subjacentes no modo de memória intermédia.

Exemplos

Feche o processador.


   import os
   from azure.eventhub.aio import EventHubProducerClient
   from azure.eventhub import EventData

   event_hub_connection_str = os.environ['EVENT_HUB_CONN_STR']
   eventhub_name = os.environ['EVENT_HUB_NAME']

   producer = EventHubProducerClient.from_connection_string(
       conn_str=event_hub_connection_str,
       eventhub_name=eventhub_name  # EventHub name should be specified if it doesn't show up in connection string.
   )
   try:
       event_data_batch = await producer.create_batch()
       while True:
           try:
               event_data_batch.add(EventData('Message inside EventBatchData'))
           except ValueError:
               # The EventDataBatch object reaches its max_size.
               # You can send the full EventDataBatch object and create a new one here.
               break
       await producer.send_batch(event_data_batch)
   finally:
       # Close down the producer handler.
       await producer.close()

create_batch

Crie um objeto EventDataBatch com o tamanho máximo de todo o conteúdo a ser restringido por max_size_in_bytes.

O max_size_in_bytes não deve ser maior do que o tamanho máximo de mensagens permitido definido pelo serviço.

async create_batch(*, partition_id: str | None = None, partition_key: str | None = None, max_size_in_bytes: int | None = None) -> EventDataBatch

Tipo de retorno

Exceções

Se ocorreu um erro ao remover a memória intermédia se a descarga estiver definida como Verdadeiro ou fechar as ligações AMQP subjacentes no modo de memória intermédia.

Exemplos

Criar objeto EventDataBatch com um tamanho limitado


       from azure.eventhub import EventData
       event_data_batch = await producer.create_batch()
       while True:
           try:
               event_data_batch.add(EventData('Message inside EventBatchData'))
           except ValueError:
               # The EventDataBatch object reaches its max_size.
               # You can send the full EventDataBatch object and create a new one here.
               break

flush

Apenas modo em memória intermédia. Remova os eventos na memória intermédia para serem enviados imediatamente se o cliente estiver a trabalhar no modo de memória intermédia.

async flush(**kwargs: Any) -> None

Parâmetros

timeout
float ou None

Tempo limite para remover os eventos em memória intermédia, a predefinição é Nenhum, o que significa que não há tempo limite.

Tipo de retorno

Exceções

Se o produtor não conseguir remover a memória intermédia dentro do tempo limite especificado no modo de memória intermédia.

from_connection_string

Crie um EventHubProducerClient a partir de um cadeia de ligação.

from_connection_string(conn_str: str, *, eventhub_name: str | None = None, buffered_mode: bool = False, on_error: Callable[[List[EventData | AmqpAnnotatedMessage], str | None, Exception], Awaitable[None]] | None = None, on_success: Callable[[List[EventData | AmqpAnnotatedMessage], str | None], Awaitable[None]] | None = None, max_buffer_length: int | None = None, max_wait_time: float | None = None, logging_enable: bool = False, http_proxy: Dict[str, str | int] | None = None, auth_timeout: float = 60, user_agent: str | None = None, retry_total: int = 3, transport_type: TransportType = TransportType.Amqp, **kwargs: Any) -> EventHubProducerClient

Parâmetros

conn_str
str
Necessário

A cadeia de ligação de um Hub de Eventos.

eventhub_name
str

O caminho do Hub de Eventos específico ao qual ligar o cliente.

buffered_mode
bool

Se For Verdadeiro, o cliente de produtor recolherá eventos numa memória intermédia, em lote eficiente e, em seguida, publicará. A predefinição é Falso.

on_success
Optional[Callable[[<xref:SendEventTypes>, Optional[str]], Awaitable[None]]]

A chamada de retorno a ser chamada assim que um lote tiver sido publicado com êxito. A chamada de retorno utiliza dois parâmetros:

  • eventos: a lista de eventos que foram publicados com êxito

  • partition_id: o ID da partição no qual os eventos na lista foram publicados.

A função de chamada de retorno deve ser definida como: on_success(eventos, partition_id). É necessário quando buffered_mode é Verdadeiro enquanto opcional se buffered_mode for Falso.

on_error
Optional[Callable[[<xref:SendEventTypes>, Optional[str], Exception], Awaitable[None]]]

A chamada de retorno a ser chamada depois de um lote não ter sido publicado. A função de chamada de retorno deve ser definida como: on_error(eventos, partition_id, erro); em que:

  • eventos: a lista de eventos que não foram publicados,

  • partition_id: o ID da partição no qual os eventos na lista foram tentados a ser publicados e

  • erro: a exceção relacionada com a falha de envio.

Se buffered_mode for Falso, on_error chamada de retorno é opcional e os erros serão processados da seguinte forma:

  • Se for transmitida uma chamada de retorno on_error durante a instanciação do cliente de produtor,

    em seguida, as informações de erro serão transmitidas à chamada de retorno on_error , que será chamada.

  • Se uma chamada de retorno de on_error não for transmitida durante a instanciação do cliente,

    em seguida, o erro será gerado por predefinição.

Se buffered_mode for Verdadeiro, on_error chamada de retorno é necessária e os erros serão processados da seguinte forma:

  • Se os eventos não conseguirem fazer a fila dentro do tempo limite especificado, será gerado um erro diretamente.

  • Se os eventos não conseguirem enviar depois de colocar a fila com êxito, a chamada de retorno on_error será chamada.

max_buffer_length
int

Apenas modo de memória intermédia. O número total de eventos por partição que podem ser colocados na memória intermédia antes de ser acionada uma descarga. O valor predefinido é 1500 no modo de memória intermédia.

max_wait_time
Optional[float]

Apenas modo de memória intermédia. A quantidade de tempo a aguardar a criação de um lote com eventos na memória intermédia antes da publicação. O valor predefinido é 1 no modo de memória intermédia.

logging_enable
bool

Se pretende exportar registos de rastreio de rede para o logger. A predefinição é Falso.

http_proxy
dict

Definições de proxy HTTP. Tem de ser um dicionário com as seguintes chaves: "proxy_hostname" (valor str) e "proxy_port" (valor int). Além disso, também podem estar presentes as seguintes chaves: "nome de utilizador", "palavra-passe".

auth_timeout
float

O tempo em segundos a aguardar que um token seja autorizado pelo serviço. O valor predefinido é 60 segundos. Se estiver definido como 0, não será imposto nenhum tempo limite do cliente.

user_agent
str

Se for especificado, será adicionado à frente da cadeia de agente do utilizador.

retry_total
int

O número total de tentativas de refazer uma operação falhada quando ocorre um erro. O valor predefinido é 3.

retry_backoff_factor
float

Um fator de recuo a aplicar entre tentativas após a segunda tentativa (a maioria dos erros é resolvida imediatamente por uma segunda tentativa sem demora). No modo fixo, a política de repetição irá sempre suspender para {backoff factor}. No modo "exponencial", a política de repetição irá suspender durante: {backoff factor} * (2 ** ({número de repetições totais} - 1)) segundos. Se o backoff_factor for 0,1, a repetição irá suspender para [0,0s, 0,2s, 0,4s, ...] entre repetições. O valor predefinido é 0,8.

retry_backoff_max
float

O tempo máximo de folga. O valor predefinido é 120 segundos (2 minutos).

retry_mode
str

O comportamento de atraso entre tentativas de repetição. Os valores suportados são "fixos" ou "exponenciais", em que a predefinição é "exponencial".

idle_timeout
float

Tempo limite, em segundos, após o qual este cliente fechará a ligação subjacente se não houver atividade. Por predefinição, o valor é Nenhum, o que significa que o cliente não será encerrado devido a inatividade, a menos que seja iniciado pelo serviço.

transport_type
TransportType

O tipo de protocolo de transporte que será utilizado para comunicar com o serviço Hubs de Eventos. A predefinição é TransportType.Amqp , caso em que é utilizada a porta 5671. Se a porta 5671 estiver indisponível/bloqueada no ambiente de rede, pode utilizar TransportType.AmqpOverWebsocket , que utiliza a porta 443 para comunicação.

custom_endpoint_address
Optional[str]

O endereço de ponto final personalizado a utilizar para estabelecer uma ligação ao serviço dos Hubs de Eventos, permitindo que os pedidos de rede sejam encaminhados através de quaisquer gateways de aplicação ou outros caminhos necessários para o ambiente anfitrião. A predefinição é Nenhuma. O formato seria como "sb://< custom_endpoint_hostname>:<custom_endpoint_port>". Se a porta não for especificada no custom_endpoint_address, será utilizada por predefinição a porta 443.

connection_verify
Optional[str]

Caminho para o ficheiro de CA_BUNDLE personalizado do certificado SSL que é utilizado para autenticar a identidade do ponto final de ligação. A predefinição é Nenhum, caso em que certifi.where() será utilizado.

uamqp_transport
bool

Se pretende utilizar a biblioteca uamqp como o transporte subjacente. O valor predefinido é Falso e a biblioteca AMQP de Python Puro será utilizada como o transporte subjacente.

Tipo de retorno

Exceções

Se ocorreu um erro ao remover a memória intermédia se a descarga estiver definida como Verdadeiro ou fechar as ligações AMQP subjacentes no modo de memória intermédia.

Exemplos

Crie uma nova instância do EventHubProducerClient a partir de cadeia de ligação.


   import os
   from azure.eventhub.aio import EventHubProducerClient
   event_hub_connection_str = os.environ['EVENT_HUB_CONN_STR']
   eventhub_name = os.environ['EVENT_HUB_NAME']
   producer = EventHubProducerClient.from_connection_string(
       conn_str=event_hub_connection_str,
       eventhub_name=eventhub_name  # EventHub name should be specified if it doesn't show up in connection string.
   )

get_buffered_event_count

O número de eventos que estão em memória intermédia e à espera de serem publicados para uma determinada partição. Devolve Nenhum no modo não colocado na memória intermédia. NOTA: a memória intermédia de eventos é processada num corouteno em segundo plano, pelo que o número de eventos na memória intermédia comunicados por esta API deve ser considerado apenas uma aproximação e só é recomendado para utilização na depuração. Para um ID de partição que não tenha eventos em memória intermédia, 0 será devolvido independentemente de esse ID de partição existir realmente no Hub de Eventos.

get_buffered_event_count(partition_id: str) -> int | None

Parâmetros

partition_id
str
Necessário

O ID da partição de destino.

Tipo de retorno

int,

Exceções

Se ocorreu um erro ao remover a memória intermédia se a descarga estiver definida como Verdadeiro ou fechar as ligações AMQP subjacentes no modo de memória intermédia.

get_eventhub_properties

Obtenha as propriedades do Hub de Eventos.

As chaves no dicionário devolvido incluem:

  • eventhub_name (str)

  • created_at (UTC datetime.datetime)

  • partition_ids (list[str])

async get_eventhub_properties() -> Dict[str, Any]

Devoluções

Um dicionário que contém informações sobre o Hub de Eventos.

Tipo de retorno

Exceções

get_partition_ids

Obter IDs de partição do Hub de Eventos.

async get_partition_ids() -> List[str]

Devoluções

Uma lista de IDs de partição.

Tipo de retorno

Exceções

get_partition_properties

Obtenha as propriedades da partição especificada.

As chaves no dicionário de propriedades incluem:

  • eventhub_name (str)

  • id (str)

  • beginning_sequence_number (int)

  • last_enqueued_sequence_number (int)

  • last_enqueued_offset (str)

  • last_enqueued_time_utc (UTC datetime.datetime)

  • is_empty (bool)

async get_partition_properties(partition_id: str) -> Dict[str, Any]

Parâmetros

partition_id
str
Necessário

O ID da partição de destino.

Devoluções

Um ditado das propriedades da partição.

Tipo de retorno

Exceções

send_batch

Envia um lote de dados de eventos. Por predefinição, o método bloqueará até a confirmação ser recebida ou a operação exceder o limite de tempo. Se o EventHubProducerClient estiver configurado para ser executado no modo de memória intermédia, o método irá colocar os eventos na memória intermédia local e regressar. O produtor fará o envio automático em segundo plano.

Se buffered_mode for Falso, on_error chamada de retorno é opcional e os erros serão processados da seguinte forma:

  • Se for transmitida uma chamada de retorno on_error durante a instanciação do cliente do produtor,

    em seguida, as informações de erro serão transmitidas à chamada de retorno on_error , que será chamada.

  • Se uma chamada de retorno de on_error não for transmitida durante a instanciação do cliente,

    em seguida, o erro será gerado por predefinição.

Se buffered_mode for Verdadeiro, on_error chamada de retorno é necessária e os erros serão processados da seguinte forma:

  • Se os eventos não conseguirem colocar a fila dentro do tempo limite especificado, será gerado um erro diretamente.

  • Se os eventos não conseguirem enviar após a colocação em fila com êxito, a chamada de retorno on_error será chamada.

No modo de memória intermédia, o envio de um lote permanecerá intacto e será enviado como uma única unidade. O lote não será reorganizado. Isto pode resultar em ineficiência no envio de eventos.

Se estiver a enviar uma lista finita de EventData ou AmqpAnnotatedMessage e souber que está dentro do limite de tamanho da moldura do hub de eventos, pode enviá-los com uma chamada send_batch . Caso contrário, utilize create_batch para criar EventDataBatch e adicionar EventData ou AmqpAnnotatedMessage no lote um a um até ao limite de tamanho e, em seguida, chame este método para enviar o lote.

async send_batch(event_data_batch: EventDataBatch | List[EventData | AmqpAnnotatedMessage], **kwargs: Any) -> None

Parâmetros

event_data_batch
Union[EventDataBatch, List[Union[EventData, AmqpAnnotatedMessage]]
Necessário

O objeto EventDataBatch a ser enviado ou uma lista de EventData a enviar num lote. Todos os EventData ou AmqpAnnotatedMessage na lista ou EventDataBatch serão colocados na mesma partição.

timeout
float

O tempo máximo de espera para enviar os dados do evento no modo não intermédia ou o tempo máximo de espera para colocar os dados do evento na memória intermédia no modo de memória intermédia. No modo não intermédia, será utilizado o tempo de espera predefinido especificado quando o produtor foi criado. No modo de memória intermédia, o tempo de espera predefinido é Nenhum.

partition_id
str

O ID de partição específico para o qual enviar. A predefinição é Nenhuma, caso em que o serviço irá atribuir a todas as partições com round robin. Será gerado um TypeError se partition_id for especificado e event_data_batch for um EventDataBatch porque o Próprio EventDataBatch tem partition_id.

partition_key
str

Com o partition_key especificado, os dados do evento serão enviados para uma partição específica do Hub de Eventos decidida pelo serviço. Será gerado um TypeError se partition_key for especificado e event_data_batch for um EventDataBatch porque o Próprio EventDataBatch tem partition_key. Se forem fornecidos partition_id e partition_key, a partition_id terá precedência. AVISO: Definir partition_key de valor não cadeia nos eventos a enviar é desencorajada, uma vez que o partition_key será ignorado pelo serviço Hub de Eventos e os eventos serão atribuídos a todas as partições com round robin. Além disso, existem SDKs para consumir eventos que esperam que partition_key sejam apenas tipo de cadeia, podem não conseguir analisar o valor de não cadeia.

Tipo de retorno

Exceções

Se o valor especificado pelo parâmetro de tempo limite decorrido antes de o evento poder ser enviado em modo não intermédia ou os eventos puderem ser colocados em fila de colocação na memória intermédia no modo de memória intermédia.

Exemplos

Assíncrono envia dados de eventos de forma assíncrona


       async with producer:
           event_data_batch = await producer.create_batch()
           while True:
               try:
                   event_data_batch.add(EventData('Message inside EventBatchData'))
               except ValueError:
                   # The EventDataBatch object reaches its max_size.
                   # You can send the full EventDataBatch object and create a new one here.
                   break
           await producer.send_batch(event_data_batch)

send_event

Envia dados de eventos. Por predefinição, o método bloqueará até a confirmação ser recebida ou a operação exceder o limite de tempo. Se o EventHubProducerClient estiver configurado para ser executado no modo de memória intermédia, o método colocará o evento na memória intermédia local e regressará. O produtor fará o batching automático e o envio em segundo plano.

Se buffered_mode for Falso, on_error chamada de retorno é opcional e os erros serão processados da seguinte forma: * Se for transmitida uma chamada de retorno de on_error durante a instanciação do cliente de produtor,

       then error information will be passed to the *on_error* callback, which will then be called.

  * If an *on_error* callback is not passed in during client instantiation,

       then the error will be raised by default.

Se buffered_mode for Verdadeiro, on_error chamada de retorno é necessária e os erros serão processados da seguinte forma: * Se os eventos não conseguirem colocar em fila dentro do tempo limite especificado, será gerado um erro diretamente.

  * If events fail to send after enqueuing successfully, the *on_error* callback will be called.
async send_event(event_data: EventData | AmqpAnnotatedMessage, **kwargs: Any) -> None

Parâmetros

event_data
Union[EventData, AmqpAnnotatedMessage]
Necessário

O objeto EventData a enviar.

timeout
float

O tempo máximo de espera para enviar os dados do evento no modo não intermédia ou o tempo máximo de espera para colocar os dados do evento na memória intermédia no modo de memória intermédia. No modo não intermédia, será utilizado o tempo de espera predefinido especificado quando o produtor foi criado. No modo de memória intermédia, o tempo de espera predefinido é Nenhum.

partition_id
str

O ID de partição específico para o qual enviar. A predefinição é Nenhuma, caso em que o serviço irá atribuir a todas as partições com round robin. Será gerado um TypeError se partition_id for especificado e event_data_batch for um EventDataBatch porque EventDataBatch tem partition_id.

partition_key
str

Com o partition_key especificado, os dados do evento serão enviados para uma partição específica do Hub de Eventos decidida pelo serviço. Será gerado um TypeError se partition_key for especificado e event_data_batch for um EventDataBatch porque EventDataBatch tem partition_key. Se forem fornecidos partition_id e partition_key, o partition_id terá precedência. AVISO: Definir partition_key de valor não cadeia nos eventos a enviar é desencorajada, uma vez que o partition_key será ignorado pelo serviço Hub de Eventos e os eventos serão atribuídos a todas as partições com round robin. Além disso, existem SDKs para consumir eventos que esperam que partition_key sejam apenas tipo de cadeia, podem não conseguir analisar o valor de não cadeia.

Tipo de retorno

Exceções

Se o valor especificado pelo parâmetro de tempo limite decorrido antes de o evento poder ser enviado no modo não intermédia ou os eventos não puderem ser colocados em fila intermédia no modo de memória intermédia.

Atributos

total_buffered_event_count

O número total de eventos que estão atualmente em memória intermédia e à espera de serem publicados, em todas as partições. Devolve Nenhum no modo não intermédia. NOTA: a memória intermédia de eventos é processada num corouteno em segundo plano, pelo que o número de eventos na memória intermédia comunicados por esta API deve ser considerado apenas uma aproximação e só é recomendado para utilização na depuração.

Tipo de retorno

int,