次の方法で共有


ServiceBusSession クラス

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

ServiceBusSession オブジェクトを直接インスタンス化する代わりに、ServiceBusReceiver の プロパティ session を使用して、受信側にリンクされている対応する ServiceBusSession オブジェクトを取得してください。

継承
azure.servicebus._servicebus_session.BaseSession
ServiceBusSession

コンストラクター

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

パラメーター

session_id
receiver

レシーバーからセッションを取得する


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

メソッド

get_state

セッションの状態を取得します。

状態が設定されていない場合は None を返します。

renew_lock

セッション ロックを更新します。

この操作は、メッセージ処理を続行するためにセッションのロックを保持するために定期的に実行する必要があります。

ロックが失われると、接続は閉じられます。期限切れのロックを更新できません。

この操作は、 セッションを azure.servicebus.aio.AutoLockRenewer インスタンスに登録することで、スレッド化されたバックグラウンド タスクとして実行することもできます。

set_state

セッションの状態を設定します。

get_state

セッションの状態を取得します。

状態が設定されていない場合は None を返します。

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

パラメーター

timeout
Optional[float]

すべての再試行を含む合計操作タイムアウト (秒単位)。 指定する場合、値は 0 より大きくする必要があります。 既定値は None で、タイムアウトがないことを意味します。

戻り値

セッションの状態。

の戻り値の型 :

セッション状態を取得する


       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

セッション ロックを更新します。

この操作は、メッセージ処理を続行するためにセッションのロックを保持するために定期的に実行する必要があります。

ロックが失われると、接続は閉じられます。期限切れのロックを更新できません。

この操作は、 セッションを azure.servicebus.aio.AutoLockRenewer インスタンスに登録することで、スレッド化されたバックグラウンド タスクとして実行することもできます。

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

パラメーター

timeout
Optional[float]

すべての再試行を含む合計操作タイムアウト (秒単位)。 指定する場合、値は 0 より大きくする必要があります。 既定値は None で、タイムアウトがないことを意味します。

戻り値

ロックの有効期限が切れる utc datetime。

の戻り値の型 :

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


       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

セッションの状態を設定します。

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

パラメーター

state
str または bytes または bytearray または None
必須

状態の値。

timeout
float または None

すべての再試行を含む合計操作タイムアウト (秒単位)。 指定する場合、値は 0 より大きくする必要があります。 既定値は None で、タイムアウトがないことを意味します。

戻り値

コールバックの応答

の戻り値の型 :

any

セッションの状態を設定する


       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")

属性

locked_until_utc

このセッションのロックの有効期限が切れる時刻。

の戻り値の型 :

session_id

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

の戻り値の型 :

str