Bagikan melalui


ServiceBusSession Kelas

ServiceBusSession digunakan untuk mengelola status sesi dan perpanjangan kunci.

Silakan gunakan properti session pada ServiceBusReceiver untuk mendapatkan objek ServiceBusSession yang sesuai yang ditautkan dengan penerima alih-alih membuat instans objek ServiceBusSession secara langsung.

Warisan
azure.servicebus._servicebus_session.BaseSession
ServiceBusSession

Konstruktor

ServiceBusSession(session_id: str, receiver: ServiceBusReceiver | ServiceBusReceiverAsync)

Parameter

session_id
receiver

Contoh

Mendapatkan sesi dari penerima


       async with servicebus_client.get_queue_receiver(queue_name=queue_name, session_id=session_id) as receiver:
           session = receiver.session

Metode

get_state

Dapatkan status sesi.

Mengembalikan Tidak Ada jika tidak ada status yang ditetapkan.

renew_lock

Perbarui kunci sesi.

Operasi ini harus dilakukan secara berkala untuk mempertahankan kunci pada sesi untuk melanjutkan pemrosesan pesan.

Setelah kunci hilang, koneksi akan ditutup; kunci kedaluwarsa tidak dapat diperpanjang.

Operasi ini juga dapat dilakukan sebagai tugas latar belakang utas dengan mendaftarkan sesi dengan instans azure.servicebus.aio.AutoLockRenewer .

set_state

Atur status sesi.

get_state

Dapatkan status sesi.

Mengembalikan Tidak Ada jika tidak ada status yang ditetapkan.

async get_state(*, timeout: float | None = None, **kwargs: Any) -> bytes

Parameter

timeout
Optional[float]

Total batas waktu operasi dalam detik termasuk semua percobaan ulang. Nilai harus lebih besar dari 0 jika ditentukan. Nilai defaultnya adalah Tidak Ada, yang berarti tidak ada batas waktu.

Mengembalikan

Status sesi.

Tipe hasil

Contoh

Mendapatkan status sesi


       async with servicebus_client.get_queue_receiver(queue_name=queue_name, session_id=session_id) as receiver:
           session = receiver.session
           session_state = await session.get_state()

renew_lock

Perbarui kunci sesi.

Operasi ini harus dilakukan secara berkala untuk mempertahankan kunci pada sesi untuk melanjutkan pemrosesan pesan.

Setelah kunci hilang, koneksi akan ditutup; kunci kedaluwarsa tidak dapat diperpanjang.

Operasi ini juga dapat dilakukan sebagai tugas latar belakang utas dengan mendaftarkan sesi dengan instans azure.servicebus.aio.AutoLockRenewer .

async renew_lock(*, timeout: float | None = None, **kwargs: Any) -> datetime

Parameter

timeout
Optional[float]

Total batas waktu operasi dalam detik termasuk semua percobaan ulang. Nilai harus lebih besar dari 0 jika ditentukan. Nilai defaultnya adalah Tidak Ada, yang berarti tidak ada batas waktu.

Mengembalikan

Tanggalwaktu utc kunci diatur untuk kedaluwarsa pada.

Tipe hasil

Contoh

Perpanjang kunci sesi sebelum kedaluwarsa


       async with servicebus_client.get_queue_receiver(queue_name=queue_name, session_id=session_id) as receiver:
           session = receiver.session
           await session.renew_lock()

set_state

Atur status sesi.

async set_state(state: str | bytes | bytearray | None, *, timeout: float | None = None, **kwargs: Any) -> None

Parameter

state
str atau bytes atau bytearray atau None
Diperlukan

Nilai status.

timeout
float atau None

Total batas waktu operasi dalam detik termasuk semua percobaan ulang. Nilai harus lebih besar dari 0 jika ditentukan. Nilai defaultnya adalah Tidak Ada, yang berarti tidak ada batas waktu.

Mengembalikan

Respons panggilan balik

Tipe hasil

any

Contoh

Mengatur status sesi


       async with servicebus_client.get_queue_receiver(queue_name=queue_name, session_id=session_id) as receiver:
           session = receiver.session
           await session.set_state("START")

Atribut

locked_until_utc

Waktu di mana kunci sesi ini akan kedaluwarsa.

Tipe hasil

session_id

Id sesi sesi saat ini.

Tipe hasil

str