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)
매개 변수
Name | Description |
---|---|
max_lock_renewal_duration
|
이 갱신자에 등록된 잠금을 유지 관리해야 하는 시간(초)입니다. 기본값은 300(5분)입니다. Default value: 300
|
on_lock_renew_failure
|
Optional[<xref:LockRenewFailureCallback>]
등록 중인 재생 가능 에너지에서 잠금이 손실될 때 콜백을 호출하도록 지정할 수 있습니다. 기본값은 None(콜백 없음)입니다. Default value: None
|
executor
|
사용자가 지정한 스레드 풀입니다. max_workers 설정과 결합할 수 없습니다. Default value: None
|
max_workers
|
스레드 풀에서 최대 작업자를 지정합니다. 지정하지 않으면 사용된 숫자는 환경의 핵심 개수에서 파생됩니다. 실행자와 결합할 수 없습니다. Default value: None
|
max_lock_renewal_duration
필수
|
이 갱신자에 등록된 잠금을 유지 관리해야 하는 시간(초)입니다. 기본값은 300(5분)입니다. |
on_lock_renew_failure
필수
|
Optional[<xref:LockRenewFailureCallback>]
등록 중인 재생 가능 에너지에서 잠금이 손실될 때 콜백을 호출하도록 지정할 수 있습니다. 기본값은 None(콜백 없음)입니다. |
executor
필수
|
사용자가 지정한 스레드 풀입니다. max_workers 설정과 결합할 수 없습니다. |
max_workers
필수
|
스레드 풀에서 최대 작업자를 지정합니다. 지정하지 않으면 사용된 숫자는 환경의 핵심 개수에서 파생됩니다. 실행자와 결합할 수 없습니다. |
예제
자동으로 메시지 잠금 갱신
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 |
나머지 잠금 갱신 스레드를 클린 위해 스레드 풀을 종료하여 autorenewal을 중단합니다. |
register |
자동 잠금 갱신을 위해 재생 가능한 엔터티를 등록합니다. |
close
나머지 잠금 갱신 스레드를 클린 위해 스레드 풀을 종료하여 autorenewal을 중단합니다.
close(wait: bool = True) -> None
매개 변수
Name | Description |
---|---|
wait
|
스레드 풀이 종료될 때까지 차단할지 여부입니다. 기본값은 True입니다. Default value: True
|
반환
형식 | Description |
---|---|
register
자동 잠금 갱신을 위해 재생 가능한 엔터티를 등록합니다.
register(receiver: ServiceBusReceiver, renewable: ServiceBusReceivedMessage | ServiceBusSession, max_lock_renewal_duration: float | None = None, on_lock_renew_failure: LockRenewFailureCallback | None = None) -> None
매개 변수
Name | Description |
---|---|
receiver
필수
|
ServiceBusReceiver는 자동 잠금 갱신할 메시지 또는 세션과 연결된 instance. |
renewable
필수
|
갱신해야 하는 잠긴 엔터티입니다. |
max_lock_renewal_duration
|
잠금을 유지해야 하는 시간(초)입니다. 기본값은 없음입니다. 지정한 경우 이 값은 생성자에 지정된 기본값을 재정의합니다. Default value: None
|
on_lock_renew_failure
|
Optional[<xref:LockRenewFailureCallback>]
등록 중인 재생 가능 에너지에서 잠금이 손실될 때 콜백을 호출하도록 지정할 수 있습니다. 기본값은 None(콜백 없음)입니다. Default value: None
|
반환
형식 | Description |
---|---|
Azure SDK for Python