ServiceBusSession Classe
O ServiceBusSession é usado para gerenciar estados de sessão e renovação de bloqueio.
Use a propriedade session
no ServiceBusReceiver para obter o objeto ServiceBusSession correspondente vinculado ao receptor em vez de instanciar um objeto ServiceBusSession diretamente.
- Herança
-
azure.servicebus._servicebus_session.BaseSessionServiceBusSession
Construtor
ServiceBusSession(session_id: str, receiver: ServiceBusReceiver | ServiceBusReceiverAsync)
Parâmetros
- session_id
- receiver
Exemplos
Obter sessão de um receptor
with servicebus_client.get_queue_receiver(queue_name=queue_name, session_id=session_id) as receiver:
session = receiver.session
Variáveis
- auto_renew_error
- <xref:azure.servicebus.AutoLockRenewTimeout> ou <xref:azure.servicebus.AutoLockRenewFailed>
Erro quando AutoLockRenewer é usado e falha ao renovar o bloqueio de sessão.
Métodos
get_state |
Obtenha o estado da sessão. Retorna Nenhum se nenhum estado tiver sido definido. |
renew_lock |
Renove o bloqueio da sessão. Essa operação deve ser executada periodicamente para manter um bloqueio na sessão para continuar o processamento de mensagens. Depois que o bloqueio for perdido, a conexão será fechada; um bloqueio expirado não pode ser renovado. Essa operação também pode ser executada como uma tarefa em segundo plano encadeada registrando a sessão com uma instância azure.servicebus.AutoLockRenewer . |
set_state |
Defina o estado da sessão. |
get_state
Obtenha o estado da sessão.
Retorna Nenhum se nenhum estado tiver sido definido.
get_state(*, timeout: float | None = None, **kwargs: Any) -> bytes
Parâmetros
- timeout
- float
O tempo limite total da operação em segundos, incluindo todas as tentativas. O valor deve ser maior que 0 se especificado. O valor padrão é None, o que significa que não há tempo limite.
Retornos
O estado da sessão.
Tipo de retorno
Exemplos
Obter o estado da sessão
with servicebus_client.get_queue_receiver(queue_name=queue_name, session_id=session_id) as receiver:
session = receiver.session
session_state = session.get_state()
renew_lock
Renove o bloqueio da sessão.
Essa operação deve ser executada periodicamente para manter um bloqueio na sessão para continuar o processamento de mensagens.
Depois que o bloqueio for perdido, a conexão será fechada; um bloqueio expirado não pode ser renovado.
Essa operação também pode ser executada como uma tarefa em segundo plano encadeada registrando a sessão com uma instância azure.servicebus.AutoLockRenewer .
renew_lock(*, timeout: float | None = None, **kwargs: Any) -> datetime
Parâmetros
- timeout
- float
O tempo limite total da operação em segundos, incluindo todas as tentativas. O valor deve ser maior que 0 se especificado. O valor padrão é None, o que significa que não há tempo limite.
Retornos
O utc datetime em que o bloqueio está definido para expirar.
Tipo de retorno
Exemplos
Renovar o bloqueio de sessão antes de expirar
with servicebus_client.get_queue_receiver(queue_name=queue_name, session_id=session_id) as receiver:
session = receiver.session
session.renew_lock()
set_state
Defina o estado da sessão.
set_state(state: str | bytes | bytearray | None, *, timeout: float | None = None, **kwargs: Any) -> None
Parâmetros
O valor do estado. Definir o estado como Nenhum limpará a sessão atual.
- timeout
- float
O tempo limite total da operação em segundos, incluindo todas as tentativas. O valor deve ser maior que 0 se especificado. O valor padrão é None, o que significa que não há tempo limite.
Retornos
Nenhum
Tipo de retorno
Exemplos
Definir o estado da sessão
with servicebus_client.get_queue_receiver(queue_name=queue_name, session_id=session_id) as receiver:
session = receiver.session
session.set_state("START")
Atributos
locked_until_utc
session_id
Azure SDK for Python