Bagikan melalui


AutoLockRenewer Kelas

Perpanjang kunci secara otomatis untuk pesan dan sesi menggunakan kumpulan utas latar belakang.

Perpanjang kunci secara otomatis untuk pesan dan sesi menggunakan kumpulan utas latar belakang. Disarankan untuk mengatur max_worker ke sejumlah besar atau melewati ThreadPoolExecutor nomor max_workers besar ketika AutoLockRenewer seharusnya berurusan dengan beberapa pesan atau sesi secara bersamaan.

Warisan
builtins.object
AutoLockRenewer

Konstruktor

AutoLockRenewer(max_lock_renewal_duration: float = 300, on_lock_renew_failure: LockRenewFailureCallback | None = None, executor: ThreadPoolExecutor | None = None, max_workers: int | None = None)

Parameter

Nama Deskripsi
max_lock_renewal_duration

Waktu dalam detik yang mengunci yang terdaftar untuk perpanjangan ini harus dipertahankan. Nilai defaultnya adalah 300 (5 menit).

Nilai default: 300
on_lock_renew_failure
Optional[<xref:LockRenewFailureCallback>]

Panggilan balik dapat ditentukan untuk dipanggil ketika kunci hilang pada yang dapat diperbarui yang sedang didaftarkan. Nilai default adalah None (tidak ada panggilan balik).

Nilai default: None
executor

Kumpulan utas yang ditentukan pengguna. Ini tidak dapat digabungkan dengan pengaturan max_workers.

Nilai default: None
max_workers

Tentukan pekerja maksimum di kumpulan utas. Jika tidak ditentukan, angka yang digunakan akan berasal dari jumlah inti lingkungan. Ini tidak dapat dikombinasikan dengan pelaksana.

Nilai default: None
max_lock_renewal_duration
Diperlukan

Waktu dalam detik yang mengunci yang terdaftar untuk perpanjangan ini harus dipertahankan. Nilai defaultnya adalah 300 (5 menit).

on_lock_renew_failure
Diperlukan
Optional[<xref:LockRenewFailureCallback>]

Panggilan balik dapat ditentukan untuk dipanggil ketika kunci hilang pada yang dapat diperbarui yang sedang didaftarkan. Nilai default adalah None (tidak ada panggilan balik).

executor
Diperlukan

Kumpulan utas yang ditentukan pengguna. Ini tidak dapat digabungkan dengan pengaturan max_workers.

max_workers
Diperlukan

Tentukan pekerja maksimum di kumpulan utas. Jika tidak ditentukan, angka yang digunakan akan berasal dari jumlah inti lingkungan. Ini tidak dapat dikombinasikan dengan pelaksana.

Contoh

Memperbarui kunci pesan secara otomatis


   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)

Memperbarui kunci sesi secara otomatis


       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)

Metode

close

Hentikan autorenewal dengan mematikan kumpulan utas untuk membersihkan utas perpanjangan kunci yang tersisa.

register

Daftarkan entitas terbarukan untuk perpanjangan kunci otomatis.

close

Hentikan autorenewal dengan mematikan kumpulan utas untuk membersihkan utas perpanjangan kunci yang tersisa.

close(wait: bool = True) -> None

Parameter

Nama Deskripsi
wait

Apakah akan memblokir hingga kumpulan utas dimatikan. Defaultnya adalah True.

Nilai default: True

Mengembalikan

Jenis Deskripsi

register

Daftarkan entitas terbarukan untuk perpanjangan kunci otomatis.

register(receiver: ServiceBusReceiver, renewable: ServiceBusReceivedMessage | ServiceBusSession, max_lock_renewal_duration: float | None = None, on_lock_renew_failure: LockRenewFailureCallback | None = None) -> None

Parameter

Nama Deskripsi
receiver
Diperlukan

Instans ServiceBusReceiver yang terkait dengan pesan atau sesi yang akan diperbarui secara otomatis.

renewable
Diperlukan

Entitas terkunci yang perlu diperbarui.

max_lock_renewal_duration

Waktu dalam detik kunci harus dipertahankan. Nilai defaultnya adalah Tidak Ada. Jika ditentukan, nilai ini akan menggantikan nilai default yang ditentukan pada konstruktor.

Nilai default: None
on_lock_renew_failure
Optional[<xref:LockRenewFailureCallback>]

Panggilan balik dapat ditentukan untuk dipanggil ketika kunci hilang pada yang dapat diperbarui yang sedang didaftarkan. Nilai default adalah None (tidak ada panggilan balik).

Nilai default: None

Mengembalikan

Jenis Deskripsi