共用方式為


ServiceBusSession 類別

ServiceBusSession 用於管理會話狀態和鎖定更新。

請使用 ServiceBusReceiver 上的 屬性 session ,取得與接收者連結的對應 ServiceBusSession 物件,而不是直接具現化 ServiceBusSession 物件。

繼承
azure.servicebus._servicebus_session.BaseSession
ServiceBusSession

建構函式

ServiceBusSession(session_id: str, receiver: ServiceBusReceiver | ServiceBusReceiverAsync)

參數

session_id
receiver

範例

從接收者取得會話


       with servicebus_client.get_queue_receiver(queue_name=queue_name, session_id=session_id) as receiver:
           session = receiver.session

變數

auto_renew_error
<xref:azure.servicebus.AutoLockRenewTimeout> 或 <xref:azure.servicebus.AutoLockRenewFailed>

使用 AutoLockRenewer 且無法更新會話鎖定時發生錯誤。

方法

get_state

取得會話狀態。

如果未設定任何狀態,則會傳回 None。

renew_lock

更新會話鎖定。

必須定期執行這項作業,才能保留會話的鎖定以繼續處理訊息。

鎖定遺失之後,連線將會關閉;無法更新過期的鎖定。

此作業也可以藉由向 azure.servicebus.AutoLockRenewer 實例註冊會話,以作為執行緒背景工作來執行。

set_state

設定會話狀態。

get_state

取得會話狀態。

如果未設定任何狀態,則會傳回 None。

get_state(*, timeout: float | None = None, **kwargs: Any) -> bytes

參數

timeout
float

作業逾時總計,以秒為單位,包括所有重試。 如果指定,此值必須大於 0。 預設值為 None,表示沒有逾時。

傳回

會話狀態。

傳回類型

範例

取得會話狀態


       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

更新會話鎖定。

必須定期執行這項作業,才能保留會話的鎖定以繼續處理訊息。

鎖定遺失之後,連線將會關閉;無法更新過期的鎖定。

此作業也可以藉由向 azure.servicebus.AutoLockRenewer 實例註冊會話,以作為執行緒背景工作來執行。

renew_lock(*, timeout: float | None = None, **kwargs: Any) -> datetime

參數

timeout
float

作業逾時總計,以秒為單位,包括所有重試。 如果指定,此值必須大於 0。 預設值為 None,表示沒有逾時。

傳回

鎖定設定為到期的 utc 日期時間。

傳回類型

範例

在會話鎖定到期之前更新會話鎖定


       with servicebus_client.get_queue_receiver(queue_name=queue_name, session_id=session_id) as receiver:
           session = receiver.session
           session.renew_lock()

set_state

設定會話狀態。

set_state(state: str | bytes | bytearray | None, *, timeout: float | None = None, **kwargs: Any) -> None

參數

state
Union[str, bytes, bytearray, None]
必要

狀態值。 將狀態設定為 [無] 會清除目前的會話。

timeout
float

作業逾時總計,以秒為單位,包括所有重試。 如果指定,此值必須大於 0。 預設值為 None,表示沒有逾時。

傳回

傳回類型

範例

設定會話狀態


       with servicebus_client.get_queue_receiver(queue_name=queue_name, session_id=session_id) as receiver:
           session = receiver.session
           session.set_state("START")

屬性

locked_until_utc

此會話鎖定到期的時間。

傳回類型

session_id

目前會話的會話識別碼。

傳回類型

str