EventHubProducerClient Kelas
Kelas EventHubProducerClient mendefinisikan antarmuka tingkat tinggi untuk mengirim peristiwa ke layanan Azure Event Hubs.
- Warisan
-
azure.eventhub._client_base.ClientBaseEventHubProducerClient
Konstruktor
EventHubProducerClient(fully_qualified_namespace: str, eventhub_name: str, credential: CredentialTypes, *, buffered_mode: Literal[False] = False, **kwargs: Any)
Parameter
- fully_qualified_namespace
- str
Nama host yang sepenuhnya memenuhi syarat untuk namespace layanan Azure Event Hubs. Ini kemungkinan mirip dengan .servicebus.windows.net
- credential
- TokenCredential atau AzureSasCredential atau AzureNamedKeyCredential
Objek kredensial yang digunakan untuk autentikasi yang mengimplementasikan antarmuka tertentu untuk mendapatkan token. Ini menerima EventHubSharedKeyCredential, atau objek kredensial yang dihasilkan oleh pustaka identitas azure dan objek yang mengimplementasikan metode *get_token(mandiri, cakupan).
- buffered_mode
- bool
Jika True, klien produsen akan mengumpulkan peristiwa dalam buffer, secara efisien batch, lalu menerbitkan. Defaultnya adalah False.
ThreadPoolExecutor yang akan digunakan untuk menerbitkan peristiwa atau jumlah pekerja untuk ThreadPoolExecutor. Defaultnya adalah None dan ThreadPoolExecutor dengan jumlah default pekerja akan dibuat per https://docs.python.org/3/library/concurrent.futures.html#concurrent.futures.ThreadPoolExecutor
Panggilan balik yang akan dipanggil setelah batch berhasil diterbitkan. Panggilan balik mengambil dua parameter:
events: Daftar peristiwa yang telah berhasil diterbitkan
partition_id: Id partisi tempat peristiwa dalam daftar telah diterbitkan.
Fungsi panggilan balik harus didefinisikan seperti: on_success(peristiwa, partition_id). Ini diperlukan ketika buffered_mode True sementara opsional jika buffered_mode False.
Panggilan balik yang akan dipanggil setelah batch gagal diterbitkan. Fungsi panggilan balik harus didefinisikan seperti: on_error(peristiwa, partition_id, kesalahan), di mana:
peristiwa: Daftar peristiwa yang gagal dipublikasikan,
partition_id: Id partisi tempat peristiwa dalam daftar telah dicoba diterbitkan ke dan
error: Pengecualian yang terkait dengan kegagalan pengiriman.
Jika buffered_mode False, panggilan balik on_error bersifat opsional dan kesalahan akan ditangani sebagai berikut:
Jika panggilan balik on_error diteruskan selama instansiasi klien produser,
kemudian informasi kesalahan akan diteruskan ke panggilan balik on_error , yang kemudian akan dipanggil.
Jika panggilan balik on_error tidak diteruskan selama instansiasi klien,
maka kesalahan akan dimunculkan secara default.
Jika buffered_mode True, panggilan balik on_error diperlukan dan kesalahan akan ditangani sebagai berikut:
Jika peristiwa gagal diantrekan dalam batas waktu yang diberikan, maka kesalahan akan langsung dimunculkan.
Jika peristiwa gagal dikirim setelah berhasil mengantre, panggilan balik on_error akan dipanggil.
- max_buffer_length
- int
Mode buffer saja. Jumlah total peristiwa per partisi yang dapat di-buffer sebelum flush akan dipicu. Nilai defaultnya adalah 1500 dalam mode buffer.
Mode buffer saja. Jumlah waktu untuk menunggu batch dibangun dengan peristiwa di buffer sebelum diterbitkan. Nilai defaultnya adalah 1 dalam mode buffer.
- logging_enable
- bool
Apakah akan mengeluarkan log jejak jaringan ke pencatat. Defaultnya adalah False.
- auth_timeout
- float
Waktu dalam detik untuk menunggu token diotorisasi oleh layanan. Nilai default-nya adalah 60 detik. Jika diatur ke 0, tidak ada batas waktu yang akan diberlakukan dari klien.
- user_agent
- str
Jika ditentukan, ini akan ditambahkan di depan string agen pengguna.
- retry_total
- int
Jumlah total upaya untuk mengulangi operasi yang gagal ketika terjadi kesalahan. Nilai defaultnya adalah 3.
- retry_backoff_factor
- float
Faktor backoff untuk diterapkan di antara upaya setelah percobaan kedua (sebagian besar kesalahan segera diselesaikan dengan percobaan kedua tanpa penundaan). Dalam mode tetap, kebijakan coba lagi akan selalu tidur untuk {faktor backoff}. Dalam mode 'eksponensial', kebijakan percobaan kembali akan tidur untuk: {faktor backoff} * (2 ** ({jumlah total percobaan ulang} - 1)) detik. Jika backoff_factor adalah 0,1, maka percobaan ulang akan tidur selama [0,0 detik, 0,2 detik, 0,4 detik, ...] di antara percobaan ulang. Nilai defaultnya adalah 0,8.
- retry_backoff_max
- float
Waktu back off maksimum. Nilai defaultnya adalah 120 detik (2 menit).
- retry_mode
- str
Perilaku penundaan antara upaya coba lagi. Nilai yang didukung adalah 'tetap' atau 'eksponensial', di mana defaultnya adalah 'eksponensial'.
- idle_timeout
- float
Waktu habis, dalam hitungan detik, setelah itu klien ini akan menutup koneksi yang mendasar jika tidak ada aktivitas. Secara default nilainya adalah Tidak Ada, yang berarti bahwa klien tidak akan dimatikan karena tidak aktif kecuali dimulai oleh layanan.
- transport_type
- TransportType
Jenis protokol transportasi yang akan digunakan untuk berkomunikasi dengan layanan Azure Event Hubs. Defaultnya adalah TransportType.Amqp dalam hal ini port 5671 digunakan. Jika port 5671 tidak tersedia/diblokir di lingkungan jaringan, TransportType.AmqpOverWebsocket dapat digunakan sebagai gantinya yang menggunakan port 443 untuk komunikasi.
- 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'.
Alamat titik akhir kustom yang digunakan untuk membuat koneksi ke layanan Azure Event Hubs, memungkinkan permintaan jaringan dirutekan melalui gateway aplikasi atau jalur lain yang diperlukan untuk lingkungan host. Defaultnya adalah Tidak Ada. Formatnya akan seperti "sb://< custom_endpoint_hostname>:<custom_endpoint_port>". Jika port tidak ditentukan dalam custom_endpoint_address, secara default port 443 akan digunakan.
Jalur ke file CA_BUNDLE kustom sertifikat SSL yang digunakan untuk mengautentikasi identitas titik akhir koneksi. Defaultnya adalah Tidak Ada dalam hal ini certifi.where() akan digunakan.
- uamqp_transport
- bool
Apakah akan menggunakan pustaka uamqp sebagai transportasi yang mendasar. Nilai defaultnya adalah False dan pustaka AMQP Python Murni akan digunakan sebagai transportasi yang mendasar.
- 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 EventHubsConnectionError terjadi karena waktu penulisan habis, nilai yang lebih besar dari default mungkin perlu diteruskan. Ini untuk skenario penggunaan tingkat lanjut dan biasanya nilai default harus cukup.
Contoh
Buat instans baru EventHubProducerClient.
import os
from azure.eventhub import EventHubProducerClient, EventHubSharedKeyCredential
fully_qualified_namespace = os.environ['EVENT_HUB_HOSTNAME']
eventhub_name = os.environ['EVENT_HUB_NAME']
shared_access_policy = os.environ['EVENT_HUB_SAS_POLICY']
shared_access_key = os.environ['EVENT_HUB_SAS_KEY']
credential = EventHubSharedKeyCredential(shared_access_policy, shared_access_key)
producer = EventHubProducerClient(
fully_qualified_namespace=fully_qualified_namespace,
eventhub_name=eventhub_name, # EventHub name should be specified if it doesn't show up in connection string.
credential=credential
)
Metode
close |
Tutup klien Produser yang mendasar koneksi dan tautan AMQP. |
create_batch |
Buat objek EventDataBatch dengan ukuran maksimum semua konten yang dibatasi oleh max_size_in_bytes. max_size_in_bytes tidak boleh lebih besar dari ukuran pesan maksimum yang diizinkan yang ditentukan oleh layanan. |
flush |
Mode buffer saja. Bersihkan peristiwa di buffer untuk segera dikirim jika klien bekerja dalam mode buffer. |
from_connection_string |
Buat EventHubProducerClient dari string koneksi. |
get_buffered_event_count |
Jumlah peristiwa yang di-buffer dan menunggu untuk diterbitkan untuk partisi tertentu. Mengembalikan Tidak Ada dalam mode non-buffer. CATATAN: Buffer peristiwa diproses di utas latar belakang, oleh karena itu jumlah peristiwa dalam buffer yang dilaporkan oleh API ini harus dianggap hanya perkiraan dan hanya direkomendasikan untuk digunakan dalam penelusuran kesalahan. Untuk ID partisi yang tidak memiliki peristiwa yang di-buffer, 0 akan dikembalikan terlepas dari apakah ID partisi tersebut benar-benar ada dalam Event Hub. |
get_eventhub_properties |
Mendapatkan properti Pusat Aktivitas. Kunci dalam kamus yang dikembalikan meliputi:
|
get_partition_ids |
Mendapatkan ID partisi dari Pusat Aktivitas. |
get_partition_properties |
Mendapatkan properti dari partisi yang ditentukan. Kunci dalam kamus properti meliputi:
|
send_batch |
Mengirim batch data peristiwa. Secara default, metode akan memblokir hingga pengakuan diterima atau waktu operasi habis. Jika EventHubProducerClient dikonfigurasi untuk berjalan dalam mode buffer, metode akan mencoba mengantrekan peristiwa ke dalam buffer dalam waktu tertentu jika ditentukan dan kembali. Produsen akan melakukan pengiriman otomatis di latar belakang dalam mode buffer. Jika buffered_mode False, panggilan balik on_error bersifat opsional dan kesalahan akan ditangani sebagai berikut:
Jika buffered_mode True, panggilan balik on_error diperlukan dan kesalahan akan ditangani sebagai berikut:
Dalam mode buffer, mengirim batch akan tetap utuh dan dikirim sebagai satu unit. Batch tidak akan diatur ulang. Hal ini dapat mengakibatkan ketidakefisienan pengiriman peristiwa. Jika Anda mengirim daftar terbatas EventData atau AmqpAnnotatedMessage dan Anda tahu itu berada dalam batas ukuran bingkai hub peristiwa, Anda dapat mengirimnya dengan panggilan send_batch . Jika tidak, gunakan create_batch untuk membuat EventDataBatch dan tambahkan EventData atau AmqpAnnotatedMessage ke dalam batch satu per satu hingga batas ukuran, lalu panggil metode ini untuk mengirim batch. |
send_event |
Mengirim data peristiwa. Secara default, metode akan memblokir hingga pengakuan diterima atau waktu operasi habis. Jika EventHubProducerClient dikonfigurasi untuk berjalan dalam mode buffer, metode akan mencoba mengantrekan peristiwa ke dalam buffer dalam waktu tertentu jika ditentukan dan kembali. Produsen akan melakukan pengiriman otomatis di latar belakang dalam mode buffer. Jika buffered_mode False, panggilan balik on_error bersifat opsional dan kesalahan akan ditangani sebagai berikut: * Jika panggilan balik on_error diteruskan selama instansiasi klien produsen,
Jika buffered_mode True, panggilan balik on_error diperlukan dan kesalahan akan ditangani sebagai berikut: * Jika peristiwa gagal diantrekan dalam batas waktu yang diberikan, kesalahan akan langsung muncul.
|
close
Tutup klien Produser yang mendasar koneksi dan tautan AMQP.
close(*, flush: bool = True, **kwargs: Any) -> None
Parameter
- flush
- bool
Mode buffer saja. Jika diatur ke True, peristiwa di buffer akan segera dikirim. Defaultnya adalah True.
Mode buffer saja. Waktu habis untuk menutup produser. Defaultnya adalah Tidak Ada yang berarti tidak ada waktu habis.
Tipe hasil
Pengecualian
Jika terjadi kesalahan saat membersihkan buffer jika flush diatur ke True atau menutup koneksi AMQP yang mendasar dalam mode buffer.
Contoh
Tutup klien.
import os
from azure.eventhub import EventHubProducerClient, EventData
event_hub_connection_str = os.environ['EVENT_HUB_CONN_STR']
eventhub_name = os.environ['EVENT_HUB_NAME']
producer = EventHubProducerClient.from_connection_string(
conn_str=event_hub_connection_str,
eventhub_name=eventhub_name # EventHub name should be specified if it doesn't show up in connection string.
)
try:
event_data_batch = producer.create_batch()
while True:
try:
event_data_batch.add(EventData('Message inside EventBatchData'))
except ValueError:
# EventDataBatch object reaches max_size.
# New EventDataBatch object can be created here to send more data
break
producer.send_batch(event_data_batch)
finally:
# Close down the producer handler.
producer.close()
create_batch
Buat objek EventDataBatch dengan ukuran maksimum semua konten yang dibatasi oleh max_size_in_bytes.
max_size_in_bytes tidak boleh lebih besar dari ukuran pesan maksimum yang diizinkan yang ditentukan oleh layanan.
create_batch(**kwargs: Any) -> EventDataBatch
Tipe hasil
Pengecualian
Jika terjadi kesalahan saat membersihkan buffer jika flush diatur ke True atau menutup koneksi AMQP yang mendasar dalam mode buffer.
Contoh
Membuat objek EventDataBatch dalam ukuran terbatas
event_data_batch = producer.create_batch()
while True:
try:
event_data_batch.add(EventData('Message inside EventBatchData'))
except ValueError:
# The EventDataBatch object reaches its max_size.
# You can send the full EventDataBatch object and create a new one here.
break
flush
Mode buffer saja. Bersihkan peristiwa di buffer untuk segera dikirim jika klien bekerja dalam mode buffer.
flush(**kwargs: Any) -> None
Parameter
Waktu habis untuk membersihkan peristiwa yang di-buffer, defaultnya adalah Tidak Ada yang berarti tidak ada waktu habis.
Tipe hasil
Pengecualian
Jika produsen gagal membersihkan buffer dalam batas waktu yang diberikan dalam mode buffer.
from_connection_string
Buat EventHubProducerClient dari string koneksi.
from_connection_string(conn_str: str, *, eventhub_name: str | None = None, buffered_mode: Literal[False] = False, **kwargs: Any) -> EventHubProducerClient
Parameter
- eventhub_name
- str
Jalur Pusat Aktivitas tertentu untuk menyambungkan klien.
- buffered_mode
- bool
Jika True, klien produsen akan mengumpulkan peristiwa dalam buffer, secara efisien batch, lalu menerbitkan. Defaultnya adalah False.
ThreadPoolExecutor yang akan digunakan untuk menerbitkan peristiwa atau jumlah pekerja untuk ThreadPoolExecutor. Defaultnya adalah None dan ThreadPoolExecutor dengan jumlah default pekerja akan dibuat per https://docs.python.org/3/library/concurrent.futures.html#concurrent.futures.ThreadPoolExecutor
Panggilan balik yang akan dipanggil setelah batch berhasil diterbitkan. Panggilan balik mengambil dua parameter:
events: Daftar peristiwa yang telah berhasil diterbitkan
partition_id: Id partisi tempat peristiwa dalam daftar telah diterbitkan.
Fungsi panggilan balik harus didefinisikan seperti: on_success(peristiwa, partition_id). Diperlukan saat buffered_mode True sementara opsional jika buffered_mode false.
Panggilan balik yang akan dipanggil setelah batch gagal diterbitkan. Diperlukan saat di buffered_mode True sementara opsional jika buffered_mode false. Fungsi panggilan balik harus didefinisikan seperti: on_error(peristiwa, partition_id, kesalahan), di mana:
peristiwa: Daftar peristiwa yang gagal dipublikasikan,
partition_id: Id partisi tempat peristiwa dalam daftar telah dicoba diterbitkan ke dan
error: Pengecualian yang terkait dengan kegagalan pengiriman.
Jika buffered_mode False, panggilan balik on_error bersifat opsional dan kesalahan akan ditangani sebagai berikut:
Jika panggilan balik on_error diteruskan selama instansiasi klien produser,
kemudian informasi kesalahan akan diteruskan ke panggilan balik on_error , yang kemudian akan dipanggil.
Jika panggilan balik on_error tidak diteruskan selama instansiasi klien,
maka kesalahan akan dimunculkan secara default.
Jika buffered_mode True, panggilan balik on_error diperlukan dan kesalahan akan ditangani sebagai berikut:
Jika peristiwa gagal diantrekan dalam batas waktu yang diberikan, maka kesalahan akan langsung dimunculkan.
Jika peristiwa gagal dikirim setelah berhasil mengantre, panggilan balik on_error akan dipanggil.
- max_buffer_length
- int
Mode buffer saja. Jumlah total peristiwa per partisi yang dapat di-buffer sebelum flush akan dipicu. Nilai defaultnya adalah 1500 dalam mode buffer.
Mode buffer saja. Jumlah waktu untuk menunggu batch dibangun dengan peristiwa di buffer sebelum diterbitkan. Nilai defaultnya adalah 1 dalam mode buffer.
- logging_enable
- bool
Apakah akan mengeluarkan log jejak jaringan ke pencatat. Defaultnya adalah False.
- 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'.
- auth_timeout
- float
Waktu dalam detik untuk menunggu token diotorisasi oleh layanan. Nilai default-nya adalah 60 detik. Jika diatur ke 0, tidak ada batas waktu yang akan diberlakukan dari klien.
- user_agent
- str
Jika ditentukan, ini akan ditambahkan di depan string agen pengguna.
- retry_total
- int
Jumlah total upaya untuk mengulangi operasi yang gagal ketika terjadi kesalahan. Nilai defaultnya adalah 3.
- retry_backoff_factor
- float
Faktor backoff untuk diterapkan di antara upaya setelah percobaan kedua (sebagian besar kesalahan segera diselesaikan dengan percobaan kedua tanpa penundaan). Dalam mode tetap, kebijakan coba lagi akan selalu tidur untuk {faktor backoff}. Dalam mode 'eksponensial', kebijakan percobaan kembali akan tidur untuk: {faktor backoff} * (2 ** ({jumlah total percobaan ulang} - 1)) detik. Jika backoff_factor adalah 0,1, maka percobaan ulang akan tidur selama [0,0 detik, 0,2 detik, 0,4 detik, ...] di antara percobaan ulang. Nilai defaultnya adalah 0,8.
- retry_backoff_max
- float
Waktu back off maksimum. Nilai defaultnya adalah 120 detik (2 menit).
- retry_mode
- str
Perilaku penundaan antara upaya coba lagi. Nilai yang didukung adalah 'tetap' atau 'eksponensial', di mana defaultnya adalah 'eksponensial'.
- idle_timeout
- float
Waktu habis, dalam hitungan detik, setelah itu klien ini akan menutup koneksi yang mendasar jika tidak ada aktivitas. Secara default nilainya adalah Tidak Ada, yang berarti bahwa klien tidak akan dimatikan karena tidak aktif kecuali dimulai oleh layanan.
- transport_type
- TransportType
Jenis protokol transportasi yang akan digunakan untuk berkomunikasi dengan layanan Azure Event Hubs. Defaultnya adalah TransportType.Amqp dalam hal ini port 5671 digunakan. Jika port 5671 tidak tersedia/diblokir di lingkungan jaringan, TransportType.AmqpOverWebsocket dapat digunakan sebagai gantinya yang menggunakan port 443 untuk komunikasi.
- http_proxy
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'.
Alamat titik akhir kustom yang digunakan untuk membuat koneksi ke layanan Azure Event Hubs, memungkinkan permintaan jaringan dirutekan melalui gateway aplikasi atau jalur lain yang diperlukan untuk lingkungan host. Defaultnya adalah Tidak Ada. Formatnya akan seperti "sb://< custom_endpoint_hostname>:<custom_endpoint_port>". Jika port tidak ditentukan dalam custom_endpoint_address, secara default port 443 akan digunakan.
Jalur ke file CA_BUNDLE kustom sertifikat SSL yang digunakan untuk mengautentikasi identitas titik akhir koneksi. Defaultnya adalah Tidak Ada dalam hal ini certifi.where() akan digunakan.
- uamqp_transport
- bool
Apakah akan menggunakan pustaka uamqp sebagai transportasi yang mendasar. Nilai defaultnya adalah False dan pustaka AMQP Python Murni akan digunakan sebagai transportasi yang mendasar.
Tipe hasil
Pengecualian
Jika terjadi kesalahan saat membersihkan buffer jika flush diatur ke True atau menutup koneksi AMQP yang mendasar dalam mode buffer.
Contoh
Buat instans baru EventHubProducerClient dari string koneksi.
import os
from azure.eventhub import EventHubProducerClient
event_hub_connection_str = os.environ['EVENT_HUB_CONN_STR']
eventhub_name = os.environ['EVENT_HUB_NAME']
producer = EventHubProducerClient.from_connection_string(
conn_str=event_hub_connection_str,
eventhub_name=eventhub_name # EventHub name should be specified if it doesn't show up in connection string.
)
get_buffered_event_count
Jumlah peristiwa yang di-buffer dan menunggu untuk diterbitkan untuk partisi tertentu. Mengembalikan Tidak Ada dalam mode non-buffer. CATATAN: Buffer peristiwa diproses di utas latar belakang, oleh karena itu jumlah peristiwa dalam buffer yang dilaporkan oleh API ini harus dianggap hanya perkiraan dan hanya direkomendasikan untuk digunakan dalam penelusuran kesalahan. Untuk ID partisi yang tidak memiliki peristiwa yang di-buffer, 0 akan dikembalikan terlepas dari apakah ID partisi tersebut benar-benar ada dalam Event Hub.
get_buffered_event_count(partition_id: str) -> int | None
Parameter
Tipe hasil
Pengecualian
Jika terjadi kesalahan saat membersihkan buffer jika flush diatur ke True atau menutup koneksi AMQP yang mendasar dalam mode buffer.
get_eventhub_properties
Mendapatkan properti Pusat Aktivitas.
Kunci dalam kamus yang dikembalikan meliputi:
eventhub_name (str)
created_at (datetime.datetime UTC)
partition_ids (list[str])
get_eventhub_properties() -> Dict[str, Any]
Mengembalikan
Kamus yang berisi properti eventhub.
Tipe hasil
Pengecualian
get_partition_ids
Mendapatkan ID partisi dari Pusat Aktivitas.
get_partition_ids() -> List[str]
Mengembalikan
Daftar ID partisi.
Tipe hasil
Pengecualian
get_partition_properties
Mendapatkan properti dari partisi yang ditentukan.
Kunci dalam kamus properti meliputi:
eventhub_name (str)
id (str)
beginning_sequence_number (int)
last_enqueued_sequence_number (int)
last_enqueued_offset (str)
last_enqueued_time_utc (datetime.datetime UTC)
is_empty (bool)
get_partition_properties(partition_id: str) -> Dict[str, Any]
Parameter
Mengembalikan
Kamus properti partisi.
Tipe hasil
Pengecualian
send_batch
Mengirim batch data peristiwa. Secara default, metode akan memblokir hingga pengakuan diterima atau waktu operasi habis. Jika EventHubProducerClient dikonfigurasi untuk berjalan dalam mode buffer, metode akan mencoba mengantrekan peristiwa ke dalam buffer dalam waktu tertentu jika ditentukan dan kembali. Produsen akan melakukan pengiriman otomatis di latar belakang dalam mode buffer.
Jika buffered_mode False, panggilan balik on_error bersifat opsional dan kesalahan akan ditangani sebagai berikut:
Jika panggilan balik on_error diteruskan selama instansiasi klien produsen,
kemudian informasi kesalahan akan diteruskan ke panggilan balik on_error , yang kemudian akan dipanggil.
Jika panggilan balik on_error tidak diteruskan selama instansiasi klien,
maka kesalahan akan dimunculkan secara default.
Jika buffered_mode True, panggilan balik on_error diperlukan dan kesalahan akan ditangani sebagai berikut:
Jika peristiwa gagal diantrekan dalam batas waktu yang diberikan, maka kesalahan akan langsung dimunculkan.
Jika peristiwa gagal dikirim setelah berhasil mengantre, panggilan balik on_error akan dipanggil.
Dalam mode buffer, mengirim batch akan tetap utuh dan dikirim sebagai satu unit. Batch tidak akan diatur ulang. Hal ini dapat mengakibatkan ketidakefisienan pengiriman peristiwa.
Jika Anda mengirim daftar terbatas EventData atau AmqpAnnotatedMessage dan Anda tahu itu berada dalam batas ukuran bingkai hub peristiwa, Anda dapat mengirimnya dengan panggilan send_batch . Jika tidak, gunakan create_batch untuk membuat EventDataBatch dan tambahkan EventData atau AmqpAnnotatedMessage ke dalam batch satu per satu hingga batas ukuran, lalu panggil metode ini untuk mengirim batch.
send_batch(event_data_batch: EventDataBatch | List[EventData | AmqpAnnotatedMessage], **kwargs: Any) -> None
Parameter
- event_data_batch
- Union[EventDataBatch, List[Union[EventData, AmqpAnnotatedMessage]]
Objek EventDataBatch yang akan dikirim atau daftar EventData yang akan dikirim dalam batch. Semua EventData atau AmqpAnnotatedMessage dalam daftar atau EventDataBatch akan mendarat di partisi yang sama.
- timeout
- float
Waktu tunggu maksimum untuk mengirim data peristiwa dalam mode non-buffer atau waktu tunggu maksimum untuk mengantrekan data peristiwa ke dalam buffer dalam mode buffer. Dalam mode non-buffer, waktu tunggu default yang ditentukan ketika produsen dibuat akan digunakan. Dalam mode buffer, waktu tunggu default adalah Tidak Ada.
- partition_id
- str
ID partisi tertentu untuk dikirim. Defaultnya adalah Tidak Ada, dalam hal ini layanan akan menetapkan ke semua partisi menggunakan round-robin. TypeError akan dinaikkan jika partition_id ditentukan dan event_data_batch adalah EventDataBatch karena EventDataBatch itu sendiri memiliki partition_id.
- partition_key
- str
Dengan partition_key yang diberikan, data peristiwa akan dikirim ke partisi tertentu dari Event Hub yang diputuskan oleh layanan. TypeError akan dinaikkan jika partition_key ditentukan dan event_data_batch adalah EventDataBatch karena EventDataBatch itu sendiri memiliki partition_key. Jika partition_id dan partition_key disediakan, partition_id akan diutamakan. PERINGATAN: Mengatur partition_key nilai non-string pada peristiwa yang akan dikirim tidak disarankan karena partition_key akan diabaikan oleh layanan Event Hub dan peristiwa akan ditetapkan ke semua partisi menggunakan round-robin. Selain itu, ada SDK untuk mengonsumsi peristiwa yang mengharapkan partition_key hanya menjadi jenis string, mereka mungkin gagal mengurai nilai non-string.
Tipe hasil
Pengecualian
Jika nilai yang ditentukan oleh parameter batas waktu berlalu sebelum peristiwa dapat dikirim dalam mode non-buffer atau peristiwa tidak dapat diantrekan ke dalam buffer dalam mode buffer.
Contoh
Mengirim data peristiwa
with producer:
event_data_batch = producer.create_batch()
while True:
try:
event_data_batch.add(EventData('Message inside EventBatchData'))
except ValueError:
# EventDataBatch object reaches max_size.
# New EventDataBatch object can be created here to send more data
break
producer.send_batch(event_data_batch)
send_event
Mengirim data peristiwa. Secara default, metode akan memblokir hingga pengakuan diterima atau waktu operasi habis. Jika EventHubProducerClient dikonfigurasi untuk berjalan dalam mode buffer, metode akan mencoba mengantrekan peristiwa ke dalam buffer dalam waktu tertentu jika ditentukan dan kembali. Produsen akan melakukan pengiriman otomatis di latar belakang dalam mode buffer.
Jika buffered_mode False, panggilan balik on_error bersifat opsional dan kesalahan akan ditangani sebagai berikut: * Jika panggilan balik on_error diteruskan selama instansiasi klien produsen,
then error information will be passed to the *on_error* callback, which will then be called.
* If an *on_error* callback is not passed in during client instantiation,
then the error will be raised by default.
Jika buffered_mode True, panggilan balik on_error diperlukan dan kesalahan akan ditangani sebagai berikut: * Jika peristiwa gagal diantrekan dalam batas waktu yang diberikan, kesalahan akan langsung muncul.
* If events fail to send after enqueuing successfully, the *on_error* callback will be called.
send_event(event_data: EventData | AmqpAnnotatedMessage, **kwargs: Any) -> None
Parameter
- timeout
- float
Waktu tunggu maksimum untuk mengirim data peristiwa dalam mode non-buffered atau waktu tunggu maksimum untuk mengantrekan data peristiwa ke dalam buffer dalam mode buffer. Dalam mode non-buffered, waktu tunggu default yang ditentukan ketika produsen dibuat akan digunakan. Dalam mode buffer, waktu tunggu default adalah Tidak Ada.
- partition_id
- str
ID partisi tertentu untuk dikirim. Defaultnya adalah Tidak Ada, dalam hal ini layanan akan menetapkan ke semua partisi menggunakan round-robin. TypeError akan dinaikkan jika partition_id ditentukan dan event_data_batch adalah EventDataBatch karena EventDataBatch itu sendiri memiliki partition_id.
- partition_key
- str
Dengan partition_key yang diberikan, data peristiwa akan dikirim ke partisi tertentu dari Event Hub yang diputuskan oleh layanan. TypeError akan dinaikkan jika partition_key ditentukan dan event_data_batch adalah EventDataBatch karena EventDataBatch itu sendiri memiliki partition_key. Jika partition_id dan partition_key disediakan, partition_id akan diutamakan. PERINGATAN: Mengatur partition_key nilai non-string pada peristiwa yang akan dikirim tidak disarankan karena partition_key akan diabaikan oleh layanan Event Hub dan peristiwa akan ditetapkan ke semua partisi menggunakan round-robin. Selain itu, ada SDK untuk mengonsumsi peristiwa yang mengharapkan partition_key hanya menjadi jenis string, mereka mungkin gagal mengurai nilai non-string.
Tipe hasil
Pengecualian
Jika nilai yang ditentukan oleh parameter batas waktu berlalu sebelum peristiwa dapat dikirim dalam mode non-buffer atau peristiwa dapat diantrekan ke dalam buffer dalam mode buffer.
Atribut
total_buffered_event_count
Jumlah total peristiwa yang saat ini di-buffer dan menunggu untuk dipublikasikan, di semua partisi. Mengembalikan Tidak Ada dalam mode non-buffer. CATATAN: Buffer peristiwa diproses di utas latar belakang, oleh karena itu jumlah peristiwa dalam buffer yang dilaporkan oleh API ini harus dianggap hanya perkiraan dan hanya direkomendasikan untuk digunakan dalam penelusuran kesalahan.
Tipe hasil
Azure SDK for Python
Saran dan Komentar
https://aka.ms/ContentUserFeedback.
Segera hadir: Sepanjang tahun 2024 kami akan menghentikan penggunaan GitHub Issues sebagai mekanisme umpan balik untuk konten dan menggantinya dengan sistem umpan balik baru. Untuk mengetahui informasi selengkapnya, lihat:Kirim dan lihat umpan balik untuk