다음을 통해 공유


AutoLockRenewer 클래스

백그라운드 스레드 풀을 사용하여 메시지 및 세션에 대한 잠금을 자동으로 갱신합니다.

백그라운드 스레드 풀을 사용하여 메시지 및 세션에 대한 잠금을 자동으로 갱신합니다. AutoLockRenewer가 여러 메시지 또는 세션을 동시에 처리해야 하는 경우 max_worker 큰 숫자로 설정하거나 큰 max_workers 숫자의 ThreadPoolExecutor를 전달하는 것이 좋습니다.

상속
builtins.object
AutoLockRenewer

생성자

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