Bagikan melalui


ServiceBusSender Kelas

Kelas ServiceBusSender menentukan antarmuka tingkat tinggi untuk mengirim pesan ke Antrean atau Topik Azure Service Bus.

Silakan gunakan get_<queue/topic>_sender metode ~azure.servicebus.ServiceBusClient untuk membuat instans ServiceBusSender.

Warisan
azure.servicebus._base_handler.BaseHandler
ServiceBusSender
azure.servicebus._servicebus_sender.SenderMixin
ServiceBusSender

Konstruktor

ServiceBusSender(fully_qualified_namespace: str, credential: TokenCredential | AzureSasCredential | AzureNamedKeyCredential, *, queue_name: str | None = None, topic_name: str | None = None, **kwargs: Any)

Parameter

fully_qualified_namespace
str
Diperlukan

Nama host yang sepenuhnya memenuhi syarat untuk namespace Bus Layanan. Format namespace adalah: .servicebus.windows.net.

credential
TokenCredential atau AzureSasCredential atau AzureNamedKeyCredential
Diperlukan

Objek kredensial yang digunakan untuk autentikasi yang mengimplementasikan antarmuka tertentu untuk mendapatkan token. Ini menerima objek kredensial yang dihasilkan oleh pustaka identitas azure dan objek yang mengimplementasikan metode *get_token (mandiri, cakupan), atau sebagai alternatif, AzureSasCredential juga dapat disediakan.

queue_name
str

Jalur Antrean Bus Layanan tertentu yang disambungkan klien.

topic_name
str

Jalur Topik Bus Layanan tertentu yang disambungkan klien.

logging_enable
bool

Apakah akan mengeluarkan log jejak jaringan ke pencatat. Defaultnya adalah False.

transport_type
TransportType

Jenis protokol transportasi yang akan digunakan untuk berkomunikasi dengan layanan Bus Layanan. Defaultnya adalah TransportType.Amqp.

http_proxy
Dict

Pengaturan proksi HTTP. Ini harus berupa kamus dengan kunci berikut: 'proxy_hostname' (nilai str) dan 'proxy_port' (nilai int). Selain itu, kunci berikut mungkin juga ada: 'nama pengguna', 'kata sandi'.

user_agent
str

Jika ditentukan, ini akan ditambahkan di depan string agen pengguna bawaan.

client_identifier
str

Pengidentifikasi berbasis string untuk mengidentifikasi instans klien secara unik. Azure Service Bus akan mengaitkannya dengan beberapa pesan kesalahan untuk korelasi kesalahan yang lebih mudah. Jika tidak ditentukan, id unik akan dibuat.

socket_timeout
float

Waktu dalam detik bahwa soket yang mendasar pada koneksi harus menunggu saat mengirim dan menerima data sebelum waktu habis. Nilai defaultnya adalah 0,2 untuk TransportType.Amqp dan 1 untuk TransportType.AmqpOverWebsocket. Jika kesalahan koneksi terjadi karena waktu tulis habis, nilai yang lebih besar dari default mungkin perlu diteruskan.

Variabel

fully_qualified_namespace
str

Nama host yang sepenuhnya memenuhi syarat untuk namespace Bus Layanan. Format namespace adalah: .servicebus.windows.net.

entity_name
str

Nama entitas yang disambungkan klien.

Metode

cancel_scheduled_messages

Batalkan satu atau beberapa pesan yang sebelumnya telah dijadwalkan dan masih tertunda.

close

Tutup tautan handler (dan koneksi jika handler menggunakan koneksi terpisah).

Jika handler telah ditutup, operasi ini tidak akan melakukan apa-apa.

create_message_batch

Buat objek ServiceBusMessageBatch dengan ukuran maksimum semua konten yang dibatasi oleh max_size_in_bytes. max_size tidak boleh lebih besar dari ukuran pesan maksimum yang diizinkan yang ditentukan oleh layanan.

schedule_messages

Kirim Pesan atau beberapa Pesan untuk diantrekan pada waktu tertentu. Mengembalikan daftar nomor urut pesan yang diantrekan.

send_messages

Mengirim pesan dan blok hingga pengakuan diterima atau waktu operasi habis.

Jika daftar pesan disediakan, upaya untuk mengirimnya sebagai satu batch, melemparkan ValueError jika tidak dapat dimuat dalam satu batch.

cancel_scheduled_messages

Batalkan satu atau beberapa pesan yang sebelumnya telah dijadwalkan dan masih tertunda.

cancel_scheduled_messages(sequence_numbers: int | List[int], *, timeout: float | None = None, **kwargs: Any) -> None

Parameter

sequence_numbers
int atau list[int]
Diperlukan

Nomor urut pesan terjadwal.

timeout
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.

Tipe hasil

Pengecualian

azure.servicebus.exceptions.ServiceBusError if messages cancellation failed due to message alreadycancelled or enqueued.

Contoh

Membatalkan pesan yang dijadwalkan untuk dikirim di masa mendatang


   with servicebus_sender:
       servicebus_sender.cancel_scheduled_messages(sequence_nums)

close

Tutup tautan handler (dan koneksi jika handler menggunakan koneksi terpisah).

Jika handler telah ditutup, operasi ini tidak akan melakukan apa-apa.

close() -> None

Tipe hasil

Pengecualian

azure.servicebus.exceptions.ServiceBusError if messages cancellation failed due to message alreadycancelled or enqueued.

create_message_batch

Buat objek ServiceBusMessageBatch dengan ukuran maksimum semua konten yang dibatasi oleh max_size_in_bytes. max_size tidak boleh lebih besar dari ukuran pesan maksimum yang diizinkan yang ditentukan oleh layanan.

create_message_batch(max_size_in_bytes: int | None = None) -> ServiceBusMessageBatch

Parameter

max_size_in_bytes
Optional[int]
nilai default: None

Ukuran maksimum data byte yang dapat disimpan objek ServiceBusMessageBatch. Secara default, nilai ditentukan oleh tingkat Azure Service Bus Anda.

Mengembalikan

Objek ServiceBusMessageBatch

Tipe hasil

Pengecualian

azure.servicebus.exceptions.ServiceBusError if messages cancellation failed due to message alreadycancelled or enqueued.

Contoh

Membuat objek ServiceBusMessageBatch dalam ukuran terbatas


   with servicebus_sender:
       batch_message = servicebus_sender.create_message_batch()
       batch_message.add_message(ServiceBusMessage("Single message inside batch"))

schedule_messages

Kirim Pesan atau beberapa Pesan untuk diantrekan pada waktu tertentu. Mengembalikan daftar nomor urut pesan yang diantrekan.

schedule_messages(messages: MessageTypes, schedule_time_utc: datetime, *, timeout: float | None = None, **kwargs: Any) -> List[int]

Parameter

messages
Union[ServiceBusMessage, AmqpAnnotatedMessage, List[Union[ServiceBusMessage, AmqpAnnotatedMessage]]]
Diperlukan

Pesan atau daftar pesan yang akan dijadwalkan.

schedule_time_utc
datetime
Diperlukan

Tanggal dan waktu utc untuk mengantrekan pesan.

timeout
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

Daftar nomor urut pesan yang diantrekan.

Tipe hasil

Pengecualian

azure.servicebus.exceptions.ServiceBusError if messages cancellation failed due to message alreadycancelled or enqueued.

Contoh

Menjadwalkan pesan yang akan dikirim di masa mendatang


   with servicebus_sender:
       scheduled_time_utc = datetime.datetime.utcnow() + datetime.timedelta(seconds=30)
       scheduled_messages = [ServiceBusMessage("Scheduled message") for _ in range(10)]
       sequence_nums = servicebus_sender.schedule_messages(scheduled_messages, scheduled_time_utc)

send_messages

Mengirim pesan dan blok hingga pengakuan diterima atau waktu operasi habis.

Jika daftar pesan disediakan, upaya untuk mengirimnya sebagai satu batch, melemparkan ValueError jika tidak dapat dimuat dalam satu batch.

send_messages(message: MessageTypes | ServiceBusMessageBatch, *, timeout: float | None = None, **kwargs: Any) -> None

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.

Tipe hasil

Pengecualian

azure.servicebus.exceptions.OperationTimeoutError if sending times out.

Contoh

Kirim pesan.


   with servicebus_sender:
       message_send = ServiceBusMessage("Hello World")
       servicebus_sender.send_messages(message_send)

Atribut

client_identifier

Dapatkan client_identifier ServiceBusSender yang terkait dengan instans pengirim.

Tipe hasil

str