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.objectAutoLockRenewer
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 |
---|---|
Azure SDK for Python