ServiceBusSession Classe
A ServiceBusSession é utilizada para gerir estados de sessão e bloquear a renovação.
Utilize a propriedade session
no ServiceBusReceiver para obter o objeto ServiceBusSession correspondente ligado ao recetor em vez de instanciar diretamente um objeto ServiceBusSession.
- 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 recetor
async with servicebus_client.get_queue_receiver(queue_name=queue_name, session_id=session_id) as receiver:
session = receiver.session
Métodos
get_state |
Obter o estado da sessão. Devolve Nenhum se não tiver sido definido nenhum estado. |
renew_lock |
Renove o bloqueio da sessão. Esta operação tem de ser executada periodicamente para manter um bloqueio na sessão para continuar o processamento de mensagens. Assim que o bloqueio for perdido, a ligação será fechada; não é possível renovar um bloqueio expirado. Esta operação também pode ser executada como uma tarefa em segundo plano por thread ao registar a sessão numa instância azure.servicebus.aio.AutoLockRenewer . |
set_state |
Defina o estado da sessão. |
get_state
Obter o estado da sessão.
Devolve Nenhum se não tiver sido definido nenhum estado.
async get_state(*, timeout: float | None = None, **kwargs: Any) -> bytes
Parâmetros
O tempo limite total da operação em segundos, incluindo todas as repetições. Se for especificado, o valor tem de ser maior do que 0. O valor predefinido é Nenhum, o que significa que não há tempo limite.
Devoluções
O estado da sessão.
Tipo de retorno
Exemplos
Obter o estado da sessão
async with servicebus_client.get_queue_receiver(queue_name=queue_name, session_id=session_id) as receiver:
session = receiver.session
session_state = await session.get_state()
renew_lock
Renove o bloqueio da sessão.
Esta operação tem de ser executada periodicamente para manter um bloqueio na sessão para continuar o processamento de mensagens.
Assim que o bloqueio for perdido, a ligação será fechada; não é possível renovar um bloqueio expirado.
Esta operação também pode ser executada como uma tarefa em segundo plano por thread ao registar a sessão numa instância azure.servicebus.aio.AutoLockRenewer .
async renew_lock(*, timeout: float | None = None, **kwargs: Any) -> datetime
Parâmetros
O tempo limite total da operação em segundos, incluindo todas as repetições. Se for especificado, o valor tem de ser maior do que 0. O valor predefinido é Nenhum, o que significa que não há tempo limite.
Devoluções
O utc datetime em que o bloqueio está definido para expirar às.
Tipo de retorno
Exemplos
Renovar o bloqueio de sessão antes de expirar
async with servicebus_client.get_queue_receiver(queue_name=queue_name, session_id=session_id) as receiver:
session = receiver.session
await session.renew_lock()
set_state
Defina o estado da sessão.
async set_state(state: str | bytes | bytearray | None, *, timeout: float | None = None, **kwargs: Any) -> None
Parâmetros
O tempo limite total da operação em segundos, incluindo todas as repetições. Se for especificado, o valor tem de ser maior do que 0. O valor predefinido é Nenhum, o que significa que não há tempo limite.
Devoluções
Resposta da chamada de retorno
Tipo de retorno
Exemplos
Definir o estado da sessão
async with servicebus_client.get_queue_receiver(queue_name=queue_name, session_id=session_id) as receiver:
session = receiver.session
await session.set_state("START")
Atributos
locked_until_utc
session_id
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