Partilhar via


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._client_base.ClientBase
EventHubProducerClient

Construtor

EventHubProducerClient(fully_qualified_namespace: str, eventhub_name: str, credential: CredentialTypes, *, buffered_mode: Literal[False] = False, **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
TokenCredential 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.

buffer_concurrency
<xref:ThreadPoolExecutor> ou int ou None

O ThreadPoolExecutor a ser utilizado para publicar eventos ou o número de trabalhadores do ThreadPoolExecutor. A predefinição é Nenhuma e será criado um ThreadPoolExecutor com o número predefinido de trabalhadores por https://docs.python.org/3/library/concurrent.futures.html#concurrent.futures.ThreadPoolExecutor

on_success
Optional[Callable[[<xref:SendEventTypes>, Optional[str]], 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], 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 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 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']

   credential = EventHubSharedKeyCredential(shared_access_policy, shared_access_key)
   producer = EventHubProducerClient(
       fully_qualified_namespace=fully_qualified_namespace,
       eventhub_name=eventhub_name,  # EventHub name should be specified if it doesn't show up in connection string.
       credential=credential
   )

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 intermédia. NOTA: a memória intermédia de eventos é processada num thread 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 (lista[str])

get_partition_ids

Obtenha 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é que a confirmação seja recebida ou a operação exceda o limite de tempo. Se o EventHubProducerClient estiver configurado para ser executado no modo de memória intermédia, o método tentará colocar os eventos na memória intermédia dentro de um determinado período de tempo, se especificado e devolver. O produtor fará o envio automático em segundo plano no modo de memória intermédia.

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.

No modo de memória intermédia, o envio de um lote permanecerá intacto e 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 ao 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é que a confirmação seja recebida ou a operação exceda o limite de tempo. Se o EventHubProducerClient estiver configurado para ser executado no modo de memória intermédia, o método tentará colocar os eventos na memória intermédia dentro de um determinado período de tempo, se especificado e devolver. O produtor fará o envio automático em segundo plano no modo de memória intermédia.

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 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 fazer a 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.

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 cliente.


   import os
   from azure.eventhub import EventHubProducerClient, 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 = producer.create_batch()

       while True:
           try:
               event_data_batch.add(EventData('Message inside EventBatchData'))
           except ValueError:
               # EventDataBatch object reaches max_size.
               # New EventDataBatch object can be created here to send more data
               break

       producer.send_batch(event_data_batch)
   finally:
       # Close down the producer handler.
       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.

create_batch(**kwargs: Any) -> 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


       event_data_batch = 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.

flush(**kwargs: Any) -> None

Parâmetros

timeout
Optional[float]

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: Literal[False] = False, **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.

buffer_concurrency
<xref:ThreadPoolExecutor> ou int ou None

O ThreadPoolExecutor a ser utilizado para publicar eventos ou o número de trabalhadores do ThreadPoolExecutor. A predefinição é Nenhuma e será criado um ThreadPoolExecutor com o número predefinido de trabalhadores por https://docs.python.org/3/library/concurrent.futures.html#concurrent.futures.ThreadPoolExecutor

on_success
Optional[Callable[[<xref:SendEventTypes>, Optional[str]], 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], 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.

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".

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

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.

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 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 intermédia. NOTA: a memória intermédia de eventos é processada num thread 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 (lista[str])

get_eventhub_properties() -> Dict[str, Any]

Devoluções

Um dicionário que contém propriedades do eventhub.

Tipo de retorno

Exceções

get_partition_ids

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

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)

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 dicionário de propriedades de partição.

Tipo de retorno

Exceções

send_batch

Envia um lote de dados de eventos. Por predefinição, o método bloqueará até que a confirmação seja recebida ou a operação exceda o limite de tempo. Se o EventHubProducerClient estiver configurado para ser executado no modo de memória intermédia, o método tentará colocar os eventos na memória intermédia dentro de um determinado período de tempo, se especificado e devolver. O produtor fará o envio automático em segundo plano no modo de memória intermédia.

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.

No modo de memória intermédia, o envio de um lote permanecerá intacto e 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 ao lote um a um até ao limite de tamanho e, em seguida, chame este método para enviar o lote.

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 enviar ou uma lista de EventData a enviar num lote. Todos os EventData ou AmqpAnnotatedMessage na lista ou EventDataBatch irão aceder à 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: A definição de partition_key de valor sem 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 seja apenas tipo de cadeia, podem não conseguir analisar o valor que não seja de 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.

Exemplos

Envia dados de eventos


       with producer:
           event_data_batch = producer.create_batch()

           while True:
               try:
                   event_data_batch.add(EventData('Message inside EventBatchData'))
               except ValueError:
                   # EventDataBatch object reaches max_size.
                   # New EventDataBatch object can be created here to send more data
                   break

           producer.send_batch(event_data_batch)

send_event

Envia dados de eventos. Por predefinição, o método bloqueará até que a confirmação seja recebida ou a operação exceda o limite de tempo. Se o EventHubProducerClient estiver configurado para ser executado no modo de memória intermédia, o método tentará colocar os eventos na memória intermédia dentro de um determinado período de tempo, se especificado e devolver. O produtor fará o envio automático em segundo plano no modo de memória intermédia.

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 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 fazer a 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.
send_event(event_data: EventData | AmqpAnnotatedMessage, **kwargs: Any) -> None

Parâmetros

event_data
Union[EventData, AmqpAnnotatedMessage]
Necessário

O objeto EventData a ser enviado.

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: A definição de partition_key de valor sem 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 seja apenas tipo de cadeia, podem não conseguir analisar o valor que não seja de 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.

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 thread 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,