次の方法で共有


ServiceBusSession クラス

ServiceBusSession は、セッション状態の管理とロックの更新に使用されます。

ServiceBusSession オブジェクトを直接インスタンス化するのではなく、ServiceBusReceiver の プロパティ session を使用して、受信側にリンクされた対応する 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 datetime。

の戻り値の型 :

有効期限が切れる前にセッション ロックを更新する


       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]
必須

状態の値。 状態を 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

現在のセッションのセッション ID。

の戻り値の型 :

str