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.ClientBaseEventHubProducerClient
Construtor
EventHubProducerClient(fully_qualified_namespace: str, eventhub_name: str, credential: CredentialTypes, *, buffered_mode: Literal[False] = False, **kwargs: Any)
Parâmetros
- fully_qualified_namespace
- str
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
- credential
- TokenCredential ou AzureSasCredential ou AzureNamedKeyCredential
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.
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
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.
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.
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".
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.
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:
|
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:
|
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 buffered_mode for Verdadeiro, on_error chamada de retorno é necessária e os erros serão processados da seguinte forma:
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,
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.
|
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.
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
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
- 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.
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
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.
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.
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".
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.
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
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.
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
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]]
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
- 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
Azure SDK for Python
Comentários
https://aka.ms/ContentUserFeedback.
Brevemente: Ao longo de 2024, vamos descontinuar progressivamente o GitHub Issues como mecanismo de feedback para conteúdos e substituí-lo por um novo sistema de feedback. Para obter mais informações, veja:Submeter e ver comentários