ServiceBusSession クラス
ServiceBusSession は、セッション状態の管理とロックの更新に使用されます。
ServiceBusSession オブジェクトを直接インスタンス化するのではなく、ServiceBusReceiver の プロパティ session
を使用して、受信側にリンクされた対応する ServiceBusSession オブジェクトを取得してください。
- 継承
-
azure.servicebus._servicebus_session.BaseSessionServiceBusSession
コンストラクター
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
パラメーター
- 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
Azure SDK for Python