AutoLockRenewer クラス
バックグラウンド スレッド プールを使用してメッセージとセッションのロックを自動更新します。
バックグラウンド スレッド プールを使用してメッセージとセッションのロックを自動更新します。 AutoLockRenewer が複数のメッセージまたはセッションを同時に処理することが想定されている場合は、max_workerを大きな数に設定するか、大きなmax_workers数の ThreadPoolExecutor を渡すことをお勧めします。
- 継承
-
builtins.objectAutoLockRenewer
コンストラクター
AutoLockRenewer(max_lock_renewal_duration: float = 300, on_lock_renew_failure: LockRenewFailureCallback | None = None, executor: ThreadPoolExecutor | None = None, max_workers: int | None = None)
パラメーター
名前 | 説明 |
---|---|
max_lock_renewal_duration
|
この更新者に登録されているロックを保持する必要がある時間 (秒単位)。 既定値は 300 (5 分) です。 規定値: 300
|
on_lock_renew_failure
|
Optional[<xref:LockRenewFailureCallback>]
登録されている再生可能なでロックが失われた場合に、コールバックを呼び出されるように指定できます。 既定値は None (コールバックなし) です。 規定値: None
|
executor
|
ユーザー指定のスレッド プール。 これを設定 max_workersと組み合わせることはできません。 規定値: None
|
max_workers
|
スレッド プール内の最大ワーカー数を指定します。 指定しない場合、使用される数は環境のコア数から派生します。 これは Executor と組み合わせることはできません。 規定値: None
|
max_lock_renewal_duration
必須
|
この更新者に登録されているロックを保持する必要がある時間 (秒単位)。 既定値は 300 (5 分) です。 |
on_lock_renew_failure
必須
|
Optional[<xref:LockRenewFailureCallback>]
登録されている再生可能なでロックが失われた場合に、コールバックを呼び出されるように指定できます。 既定値は None (コールバックなし) です。 |
executor
必須
|
ユーザー指定のスレッド プール。 これを設定 max_workersと組み合わせることはできません。 |
max_workers
必須
|
スレッド プール内の最大ワーカー数を指定します。 指定しない場合、使用される数は環境のコア数から派生します。 これは Executor と組み合わせることはできません。 |
例
メッセージ ロックを自動的に更新する
from azure.servicebus import AutoLockRenewer
lock_renewal = AutoLockRenewer(max_workers=4)
with servicebus_receiver:
for message in servicebus_receiver:
# Auto renew message for 1 minute.
lock_renewal.register(servicebus_receiver, message, max_lock_renewal_duration=60)
process_message(message)
servicebus_receiver.complete_message(message)
セッション ロックを自動的に更新する
from azure.servicebus import AutoLockRenewer
lock_renewal = AutoLockRenewer(max_workers=4)
with servicebus_client.get_queue_receiver(queue_name=queue_name, session_id=session_id) as receiver:
session = receiver.session
# Auto renew session lock for 2 minutes
lock_renewal.register(receiver, session, max_lock_renewal_duration=120)
for message in receiver:
process_message(message)
receiver.complete_message(message)
メソッド
close |
残りのロック更新スレッドをクリーンするには、スレッド プールをシャットダウンして自動再呼び出しを停止します。 |
register |
更新可能なエンティティを登録して、ロックの自動更新を行います。 |
close
残りのロック更新スレッドをクリーンするには、スレッド プールをシャットダウンして自動再呼び出しを停止します。
close(wait: bool = True) -> None
パラメーター
名前 | 説明 |
---|---|
wait
|
スレッド プールがシャットダウンするまでブロックするかどうか。 既定値は True です。 規定値: True
|
戻り値
型 | 説明 |
---|---|
register
更新可能なエンティティを登録して、ロックの自動更新を行います。
register(receiver: ServiceBusReceiver, renewable: ServiceBusReceivedMessage | ServiceBusSession, max_lock_renewal_duration: float | None = None, on_lock_renew_failure: LockRenewFailureCallback | None = None) -> None
パラメーター
名前 | 説明 |
---|---|
receiver
必須
|
メッセージまたは自動ロック更新されるセッションに関連付けられている ServiceBusReceiver インスタンス。 |
renewable
必須
|
更新する必要があるロックされたエンティティ。 |
max_lock_renewal_duration
|
ロックを維持する必要がある時間 (秒)。 既定値は [なし] です。 指定した場合、この値はコンストラクターで指定された既定値をオーバーライドします。 規定値: None
|
on_lock_renew_failure
|
Optional[<xref:LockRenewFailureCallback>]
登録されている再生可能なでロックが失われた場合に、コールバックを呼び出されるように指定できます。 既定値は None (コールバックなし) です。 規定値: None
|
戻り値
型 | 説明 |
---|---|
Azure SDK for Python