EventHubProducerClient Sınıf
EventHubProducerClient sınıfı, olayları Azure Event Hubs hizmetine göndermek için üst düzey bir arabirim tanımlar.
- Devralma
-
azure.eventhub.aio._client_base_async.ClientBaseAsyncEventHubProducerClient
Oluşturucu
EventHubProducerClient(fully_qualified_namespace: str, eventhub_name: str, credential: CredentialTypes, *, buffered_mode: bool = False, on_error: Callable[[List[EventData | AmqpAnnotatedMessage], str | None, Exception], Awaitable[None]] | None = None, on_success: Callable[[List[EventData | AmqpAnnotatedMessage], str | None], Awaitable[None]] | None = None, max_buffer_length: int | None = None, max_wait_time: float | None = None, **kwargs: Any)
Parametreler
- fully_qualified_namespace
- str
Event Hubs ad alanı için tam konak adı. Bu büyük olasılıkla .servicebus.windows.net
- credential
- AsyncTokenCredential veya AzureSasCredential veya AzureNamedKeyCredential
Belirteçleri almak için belirli bir arabirim uygulayan kimlik doğrulaması için kullanılan kimlik bilgisi nesnesi. Azure-identity kitaplığı tarafından oluşturulan , veya kimlik bilgisi nesnelerini ve *get_token(self, scopes) yöntemini uygulayan nesneleri kabul EventHubSharedKeyCredentialeder.
- buffered_mode
- bool
True ise, üretici istemcisi olayları bir arabellekte toplar, verimli bir şekilde toplu işler ve yayımlar. Varsayılan değer False'tur.
Toplu iş başarıyla yayımlandıktan sonra çağrılacak geri çağırma. Geri çağırma iki parametre alır:
events: Başarıyla yayımlanan olayların listesi
partition_id: Listedeki olayların yayımlandığı bölüm kimliği.
Geri çağırma işlevi şu şekilde tanımlanmalıdır: on_success(olaylar, partition_id). buffered_mode True olduğunda, buffered_mode False ise isteğe bağlı olduğunda gereklidir.
Toplu iş yayımlanamadığında çağrılacak geri çağırma. buffered_mode içinde True olduğunda gereklidir, buffered_mode False ise isteğe bağlıdır. Geri çağırma işlevi şu şekilde tanımlanmalıdır: on_error(olaylar, partition_id, hata); burada:
events: Yayımlanamayan olayların listesi,
partition_id: Listedeki olayların ve'de yayımlanmaya çalışıldığı bölüm kimliği
error: Gönderme hatasıyla ilgili özel durum.
buffered_mode False ise, on_error geri çağırma isteğe bağlıdır ve hatalar aşağıdaki gibi işlenir:
Üretici istemci örneği oluşturma sırasında bir on_error geri çağırma geçirilirse,
ardından hata bilgileri on_error geri çağırmaya geçirilir ve bu da çağrılır.
İstemci örneği oluşturma sırasında bir on_error geri çağırma geçirilmediyse,
ardından hata varsayılan olarak oluşturulur.
buffered_mode True ise, on_error geri çağırma gerekir ve hatalar şu şekilde işlenir:
Olaylar verilen zaman aşımı içinde sıraya alınamazsa, doğrudan bir hata oluşur.
Olaylar başarıyla sıraya alındıktan sonra gönderilemiyorsa , on_error geri çağırma çağrılır.
- max_buffer_length
- int
Yalnızca arabelleğe alınan mod. Temizleme tetiklenmeden önce arabelleğe alınabilecek bölüm başına toplam olay sayısı. Arabelleğe alınan modda varsayılan değer 1500'dür.
Yalnızca arabelleğe alınan mod. Yayımlamadan önce arabellekteki olaylarla bir toplu işlemin derlenmesini bekleme süresi. Arabelleğe alınan modda varsayılan değer 1'dir.
- logging_enable
- bool
Günlükçüye ağ izleme günlüklerinin çıkışının yapılıp yapılmaydığı. Varsayılan değer False'tur.
- auth_timeout
- float
Saniye cinsinden bir belirtecin hizmet tarafından yetkilendirilmesini bekleme süresi. Varsayılan değer 60 saniyedir. 0 olarak ayarlanırsa, istemciden hiçbir zaman aşımı uygulanmaz.
- user_agent
- str
Belirtilirse, bu kullanıcı aracısı dizesinin önüne eklenir.
- retry_total
- int
Hata oluştuğunda başarısız olan bir işlemi yineleme denemelerinin toplam sayısı. Varsayılan değer 3’tür.
- retry_backoff_factor
- float
İkinci denemeden sonra girişimler arasında uygulanacak bir geri alma faktörü (çoğu hata gecikme olmadan ikinci bir denemeyle hemen çözülür). Sabit modda, yeniden deneme ilkesi {backoff factor} için her zaman uyku moduna geçer. 'Üstel' modda, yeniden deneme ilkesi şu süre boyunca uyku moduna geçer: {backoff factor} * (2 ** ({toplam yeniden deneme sayısı} - 1)) saniye. backoff_factor 0,1 ise yeniden denemeler arasında [0,0s, 0,2s, 0,4s, ...] için yeniden deneme uyku moduna alır. Varsayılan değer 0,8'dir.
- retry_backoff_max
- float
İzin süresi üst sınırı. Varsayılan değer 120 saniyedir (2 dakika).
- retry_mode
- str
Yeniden deneme girişimleri arasındaki gecikme davranışı. Desteklenen değerler 'sabit' veya 'üstel'dir; burada varsayılan değer 'üstel'dir.
- idle_timeout
- float
Saniyeler içinde zaman aşımı, etkinlik yoksa bu istemci temel bağlantıyı kapatır. Varsayılan olarak değer Yok'tur, yani hizmet tarafından başlatılmadığı sürece istemcinin etkinlik dışı kalma nedeniyle kapanmayacağı anlamına gelir.
- transport_type
- TransportType
Event Hubs hizmetiyle iletişim kurmak için kullanılacak aktarım protokolünün türü. Varsayılan değer TransportType.Amqp'dir ve bu durumda bağlantı noktası 5671 kullanılır. Ağ ortamında 5671 numaralı bağlantı noktası kullanılamıyorsa/engelleniyorsa, iletişim için 443 numaralı bağlantı noktasını kullanan TransportType.AmqpOverWebsocket kullanılabilir.
- http_proxy
- dict
HTTP proxy ayarları. Bu, şu anahtarlara sahip bir sözlük olmalıdır: 'proxy_hostname' (str değeri) ve 'proxy_port' (int değeri). Ayrıca aşağıdaki anahtarlar da mevcut olabilir: 'username', 'password'.
Event Hubs hizmetine bağlantı kurmak için kullanılacak özel uç nokta adresi, ağ isteklerinin konak ortamı için gereken tüm uygulama ağ geçitleri veya diğer yollar üzerinden yönlendirilmesine olanak tanır. Varsayılan değer Yok'tur. Biçim "sb://< custom_endpoint_hostname>:<custom_endpoint_port>" şeklinde olacaktır. bağlantı noktası custom_endpoint_address belirtilmezse, varsayılan olarak 443 numaralı bağlantı noktası kullanılır.
Bağlantı uç noktasının kimliğini doğrulamak için kullanılan SSL sertifikasının özel CA_BUNDLE dosyasının yolu. Varsayılan değer Hiçbiri'dir ve bu durumda certifi.where() kullanılır.
- uamqp_transport
- bool
Temel alınan aktarım olarak uamqp kitaplığının kullanılıp kullanılmaymayacağı. Varsayılan değer False'tur ve temel alınan aktarım olarak Pure Python AMQP kitaplığı kullanılır.
- socket_timeout
- float
Zaman aşımına uğramadan önce bağlantıdaki temel yuvanın veri gönderirken ve alırken beklemesi gereken saniye cinsinden süre. Varsayılan değer TransportType.Amqp için 0.2 ve TransportType.AmqpOverWebsocket için 1'dir. Yazma zaman aşımı nedeniyle EventHubsConnectionError hataları oluşuyorsa, varsayılan değerden daha büyük bir değerin geçirilmesi gerekebilir. Bu gelişmiş kullanım senaryoları içindir ve normalde varsayılan değer yeterli olmalıdır.
Örnekler
EventHubProducerClient'ın yeni bir örneğini oluşturun.
import os
from azure.eventhub.aio 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']
producer = EventHubProducerClient(fully_qualified_namespace=fully_qualified_namespace,
eventhub_name=eventhub_name,
credential=EventHubSharedKeyCredential(shared_access_policy, shared_access_key))
Yöntemler
close |
Temel alınan AMQP bağlantısı ve bağlantılarını üretici istemcisini kapatın. |
create_batch |
max_size_in_bytes tarafından kısıtlanan tüm içeriğin en büyük boyutuna sahip bir EventDataBatch nesnesi oluşturun. max_size_in_bytes, hizmet tarafından tanımlanan izin verilen maksimum ileti boyutundan büyük olmamalıdır. |
flush |
Yalnızca arabelleğe alınan mod. İstemci arabelleğe alınan modda çalışıyorsa hemen gönderilecek arabellekteki olayları boşaltın. |
from_connection_string |
bir bağlantı dizesi EventHubProducerClient oluşturun. |
get_buffered_event_count |
Arabelleğe alınan ve belirli bir bölüm için yayımlanmayı bekleyen olayların sayısı. Arabelleğe alınamayan modda Hiçbiri döndürür. NOT: Olay arabelleği bir arka plan eş yordamda işlenir, bu nedenle bu API tarafından bildirilen arabellekteki olayların sayısı yalnızca yaklaşık olarak kabul edilmelidir ve yalnızca hata ayıklamada kullanılması önerilir. Arabelleğe alınmamış olay içermeyen bir bölüm kimliği için, bölüm kimliğinin Olay Hub'ının içinde olup olmadığına bakılmaksızın 0 döndürülür. |
get_eventhub_properties |
Olay Hub'ının özelliklerini alma. Döndürülen sözlükteki anahtarlar şunlardır:
|
get_partition_ids |
Olay Hub'ının bölüm kimliklerini alın. |
get_partition_properties |
Belirtilen bölümün özelliklerini alın. Özellikler sözlüğündeki anahtarlar şunlardır:
|
send_batch |
Bir grup olay verisi gönderir. Varsayılan olarak, onay alınana veya işlem zaman aşımına ulaşana kadar yöntemi engeller. EventHubProducerClient arabelleğe alınmış modda çalışacak şekilde yapılandırılmışsa, yöntemi olayları yerel arabelleğe alır ve döndürür. Yapımcı arka planda otomatik gönderme yapar. buffered_mode False ise, on_error geri çağırma isteğe bağlıdır ve hatalar aşağıdaki gibi işlenir:
buffered_mode True ise, on_error geri çağırma gerekir ve hatalar şu şekilde işlenir:
Arabelleğe alınan modda, toplu iş gönderme işlemi değişmeden kalır ve tek bir birim olarak gönderilir. Toplu iş yeniden düzenlenmeyecek. Bu, olay göndermede yetersizliğe neden olabilir. EventData veya AmqpAnnotatedMessage'ın sınırlı bir listesini gönderiyorsanız ve bunun olay hub'ı çerçeve boyutu sınırı içinde olduğunu biliyorsanız, bunları bir send_batch çağrısıyla gönderebilirsiniz. Aksi takdirde, EventDataBatch oluşturmak ve boyut sınırına kadar toplu işleme EventData veya AmqpAnnotatedMessage eklemek için kullanın create_batch ve ardından toplu işlemi göndermek için bu yöntemi çağırın. |
send_event |
Olay verileri gönderir. Varsayılan olarak, onay alınana veya işlem zaman aşımına ulaşana kadar yöntemi engeller. EventHubProducerClient arabelleğe alınmış modda çalışacak şekilde yapılandırılmışsa, yöntemi olayı yerel arabelleğe alır ve döndürür. Üretici, arka planda otomatik toplu işlem ve gönderme işlemi yapar. buffered_mode False ise, on_error geri çağırma isteğe bağlıdır ve hatalar şu şekilde işlenir: * Üretici istemci örneği oluşturma sırasında bir on_error geri çağırma geçirilirse,
buffered_mode True ise, on_error geri çağırma gerekir ve hatalar şu şekilde işlenir: * Olaylar belirtilen zaman aşımı içinde sıraya alınamazsa, doğrudan bir hata oluşur.
|
close
Temel alınan AMQP bağlantısı ve bağlantılarını üretici istemcisini kapatın.
async close(*, flush: bool = True, **kwargs: Any) -> None
Parametreler
- flush
- bool
Yalnızca arabelleğe alınan mod. True olarak ayarlanırsa arabellekteki olaylar hemen gönderilir. Varsayılan değer True'dur.
Yalnızca arabelleğe alınan mod. Yapımcıyı kapatmak için zaman aşımı. Varsayılan Değer Yok'tur ve bu da zaman aşımı olmadığı anlamına gelir.
Dönüş türü
Özel durumlar
Arabellek boşaltılırken hata oluştuysa, boşaltma Doğru olarak ayarlandıysa veya arabelleğe alınan modda temel alınan AMQP bağlantılarını kapatın.
Örnekler
İşleyiciyi kapatın.
import os
from azure.eventhub.aio import EventHubProducerClient
from azure.eventhub import 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 = await 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
await producer.send_batch(event_data_batch)
finally:
# Close down the producer handler.
await producer.close()
create_batch
max_size_in_bytes tarafından kısıtlanan tüm içeriğin en büyük boyutuna sahip bir EventDataBatch nesnesi oluşturun.
max_size_in_bytes, hizmet tarafından tanımlanan izin verilen maksimum ileti boyutundan büyük olmamalıdır.
async create_batch(*, partition_id: str | None = None, partition_key: str | None = None, max_size_in_bytes: int | None = None) -> EventDataBatch
Dönüş türü
Özel durumlar
Arabellek boşaltılırken hata oluştuysa, boşaltma Doğru olarak ayarlandıysa veya arabelleğe alınan modda temel alınan AMQP bağlantılarını kapatın.
Örnekler
Sınırlı boyutta EventDataBatch nesnesi oluşturma
from azure.eventhub import EventData
event_data_batch = await 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
Yalnızca arabelleğe alınan mod. İstemci arabelleğe alınan modda çalışıyorsa hemen gönderilecek arabellekteki olayları boşaltın.
async flush(**kwargs: Any) -> None
Parametreler
Arabelleğe alınan olayları temizlemek için zaman aşımı, varsayılan değer Yok'tur ve bu da zaman aşımı olmadığı anlamına gelir.
Dönüş türü
Özel durumlar
Üretici arabelleğe alınan modda verilen zaman aşımı içinde arabelleği temizleyemezse.
from_connection_string
bir bağlantı dizesi EventHubProducerClient oluşturun.
from_connection_string(conn_str: str, *, eventhub_name: str | None = None, buffered_mode: bool = False, on_error: Callable[[List[EventData | AmqpAnnotatedMessage], str | None, Exception], Awaitable[None]] | None = None, on_success: Callable[[List[EventData | AmqpAnnotatedMessage], str | None], Awaitable[None]] | None = None, max_buffer_length: int | None = None, max_wait_time: float | None = None, logging_enable: bool = False, http_proxy: Dict[str, str | int] | None = None, auth_timeout: float = 60, user_agent: str | None = None, retry_total: int = 3, transport_type: TransportType = TransportType.Amqp, **kwargs: Any) -> EventHubProducerClient
Parametreler
- eventhub_name
- str
İstemcinin bağlanacak olay hub'ının yolu.
- buffered_mode
- bool
True ise, üretici istemcisi olayları bir arabellekte toplar, verimli bir şekilde toplu işler ve yayımlar. Varsayılan değer False'tur.
Toplu iş başarıyla yayımlandıktan sonra çağrılacak geri çağırma. Geri çağırma iki parametre alır:
events: Başarıyla yayımlanan olayların listesi
partition_id: Listedeki olayların yayımlandığı bölüm kimliği.
Geri çağırma işlevi şöyle tanımlanmalıdır: on_success(olaylar, partition_id). buffered_mode True olduğunda, buffered_mode False ise isteğe bağlı olduğunda gereklidir.
Toplu iş yayımlanamadığında çağrılacak geri çağırma. Geri çağırma işlevi şöyle tanımlanmalıdır: on_error(olaylar, partition_id, hata); burada:
events: Yayımlanamayan olayların listesi,
partition_id: Listedeki olayların ve'de yayımlanmaya çalışıldığı bölüm kimliği
error: Gönderme hatasıyla ilgili özel durum.
buffered_mode False ise, on_error geri çağırma isteğe bağlıdır ve hatalar aşağıdaki gibi işlenir:
Üretici istemci örneği oluşturma sırasında bir on_error geri çağırma geçirilirse,
daha sonra hata bilgileri on_error geri çağırmaya geçirilir ve bu da çağrılır.
İstemci örneği oluşturma sırasında bir on_error geri çağırma geçirilmediyse,
ardından hata varsayılan olarak oluşturulur.
buffered_mode True ise, on_error geri çağırma gereklidir ve hatalar aşağıdaki gibi işlenir:
Olaylar verilen zaman aşımı içinde sıraya alınamazsa, doğrudan bir hata oluşur.
Olaylar başarıyla sıraladıktan sonra gönderilemiyorsa , on_error geri çağırma çağrılır.
- max_buffer_length
- int
Yalnızca arabelleğe alınan mod. Temizleme tetiklenmeden önce arabelleğe alınabilecek bölüm başına toplam olay sayısı. Varsayılan değer arabelleğe alınan modda 1500'dür.
Yalnızca arabelleğe alınan mod. Yayımlamadan önce toplu işlemin arabellekteki olaylarla derlenmesini bekleme süresi. Arabelleğe alınan modda varsayılan değer 1'dir.
- logging_enable
- bool
Günlükçüye ağ izleme günlüklerinin çıkışının yapılıp yapılmaydığı. Varsayılan değer False'tur.
- http_proxy
- dict
HTTP proxy ayarları. Bu, şu anahtarlara sahip bir sözlük olmalıdır: 'proxy_hostname' (str değeri) ve 'proxy_port' (int değeri). Ayrıca aşağıdaki anahtarlar da mevcut olabilir: 'kullanıcı adı', 'parola'.
- auth_timeout
- float
Bir belirtecin hizmet tarafından yetkilendirilmesini beklemek için saniye cinsinden süre. Varsayılan değer 60 saniyedir. 0 olarak ayarlanırsa, istemciden zaman aşımı uygulanmaz.
- user_agent
- str
Belirtilirse, bu kullanıcı aracısı dizesinin önüne eklenir.
- retry_total
- int
Hata oluştuğunda başarısız olan bir işlemi yineleme denemelerinin toplam sayısı. Varsayılan değer 3’tür.
- retry_backoff_factor
- float
İkinci denemeden sonraki denemeler arasında uygulanacak geri alma faktörü (çoğu hata gecikme olmadan ikinci bir denemeyle hemen çözülür). Sabit modda, yeniden deneme ilkesi {backoff factor} için her zaman uyku moduna geçer. 'Üstel' modda, yeniden deneme ilkesi şu süre boyunca uyku moduna geçer: {backoff factor} * (2 ** ({toplam yeniden deneme sayısı} - 1)) saniye. backoff_factor 0,1 ise yeniden denemeler arasında [0,0s, 0,2s, 0,4s, ...] için yeniden deneme uyku moduna girer. Varsayılan değer 0,8'dir.
- retry_backoff_max
- float
İzin süresi üst sınırı. Varsayılan değer 120 saniyedir (2 dakika).
- retry_mode
- str
Yeniden deneme girişimleri arasındaki gecikme davranışı. Desteklenen değerler 'sabit' veya 'üstel'dir; burada varsayılan değer 'üstel'dir.
- idle_timeout
- float
Saniyeler içinde zaman aşımı, etkinlik yoksa bu istemci temel bağlantıyı kapatır. Varsayılan olarak değer Yok'tır, yani hizmet tarafından başlatılmadığı sürece istemcinin etkinlik dışı kalma nedeniyle kapanmayacağı anlamına gelir.
- transport_type
- TransportType
Event Hubs hizmetiyle iletişim kurmak için kullanılacak aktarım protokolünün türü. Varsayılan değer TransportType.Amqp'tir ve bu durumda 5671 numaralı bağlantı noktası kullanılır. Ağ ortamında 5671 numaralı bağlantı noktası kullanılamıyorsa/engelleniyorsa, iletişim için 443 numaralı bağlantı noktasını kullanan TransportType.AmqpOverWebsocket kullanılabilir.
Ağ isteklerinin herhangi bir uygulama ağ geçidi veya konak ortamı için gereken diğer yollar üzerinden yönlendirilmesine olanak tanıyarak Event Hubs hizmetine bağlantı kurmak için kullanılacak özel uç nokta adresi. Varsayılan değer Yok'tır. Biçim "sb://< custom_endpoint_hostname>:<custom_endpoint_port>" gibi olabilir. bağlantı noktası custom_endpoint_address belirtilmezse, varsayılan olarak 443 numaralı bağlantı noktası kullanılır.
Bağlantı uç noktasının kimliğini doğrulamak için kullanılan SSL sertifikasının özel CA_BUNDLE dosyasının yolu. Varsayılan değer Hiçbiri'dir ve bu durumda certifi.where() kullanılır.
- uamqp_transport
- bool
Temel alınan aktarım olarak uamqp kitaplığının kullanılıp kullanılmaymayacağı. Varsayılan değer False'tur ve temel alınan aktarım olarak Pure Python AMQP kitaplığı kullanılır.
Dönüş türü
Özel durumlar
Arabellek boşaltılırken hata oluştuysa, boşaltma Doğru olarak ayarlandıysa veya arabelleğe alınan modda temel alınan AMQP bağlantılarını kapatın.
Örnekler
bağlantı dizesi'den EventHubProducerClient'ın yeni bir örneğini oluşturun.
import os
from azure.eventhub.aio 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
Arabelleğe alınan ve belirli bir bölüm için yayımlanmayı bekleyen olayların sayısı. Arabelleğe alınamayan modda Hiçbiri döndürür. NOT: Olay arabelleği bir arka plan eş yordamda işlenir, bu nedenle bu API tarafından bildirilen arabellekteki olayların sayısı yalnızca yaklaşık olarak kabul edilmelidir ve yalnızca hata ayıklamada kullanılması önerilir. Arabelleğe alınmamış olay içermeyen bir bölüm kimliği için, bölüm kimliğinin Olay Hub'ının içinde olup olmadığına bakılmaksızın 0 döndürülür.
get_buffered_event_count(partition_id: str) -> int | None
Parametreler
Dönüş türü
Özel durumlar
Arabellek boşaltılırken hata oluştuysa, boşaltma Doğru olarak ayarlandıysa veya arabelleğe alınan modda temel alınan AMQP bağlantılarını kapatın.
get_eventhub_properties
Olay Hub'ının özelliklerini alma.
Döndürülen sözlükteki anahtarlar şunlardır:
eventhub_name (str)
created_at (UTC datetime.datetime)
partition_ids (list[str])
async get_eventhub_properties() -> Dict[str, Any]
Döndürülenler
Olay Hub'ı hakkında bilgi içeren bir sözlük.
Dönüş türü
Özel durumlar
get_partition_ids
Olay Hub'ının bölüm kimliklerini alın.
async get_partition_ids() -> List[str]
Döndürülenler
Bölüm kimliklerinin listesi.
Dönüş türü
Özel durumlar
get_partition_properties
Belirtilen bölümün özelliklerini alın.
Özellikler sözlüğündeki anahtarlar şunlardır:
eventhub_name (str)
id (str)
beginning_sequence_number (int)
last_enqueued_sequence_number (int)
last_enqueued_offset (str)
last_enqueued_time_utc (UTC datetime.datetime)
is_empty (bool)
async get_partition_properties(partition_id: str) -> Dict[str, Any]
Parametreler
Döndürülenler
Bölüm özelliklerinin diktesi.
Dönüş türü
Özel durumlar
send_batch
Bir grup olay verisi gönderir. Varsayılan olarak, onay alınana veya işlem zaman aşımına ulaşana kadar yöntemi engeller. EventHubProducerClient arabelleğe alınmış modda çalışacak şekilde yapılandırılmışsa, yöntemi olayları yerel arabelleğe alır ve döndürür. Yapımcı arka planda otomatik gönderme yapar.
buffered_mode False ise, on_error geri çağırma isteğe bağlıdır ve hatalar aşağıdaki gibi işlenir:
Üretici istemci örneği oluşturma sırasında bir on_error geri çağırma geçirilirse,
ardından hata bilgileri on_error geri çağırmaya geçirilir ve bu da çağrılır.
İstemci örneği oluşturma sırasında bir on_error geri çağırma geçirilmediyse,
ardından hata varsayılan olarak oluşturulur.
buffered_mode True ise, on_error geri çağırma gerekir ve hatalar şu şekilde işlenir:
Olaylar verilen zaman aşımı içinde sıraya alınamazsa, doğrudan bir hata oluşur.
Olaylar başarıyla sıraya alındıktan sonra gönderilemiyorsa , on_error geri çağırma çağrılır.
Arabelleğe alınan modda, toplu iş gönderme işlemi değişmeden kalır ve tek bir birim olarak gönderilir. Toplu iş yeniden düzenlenmeyecek. Bu, olay göndermede yetersizliğe neden olabilir.
EventData veya AmqpAnnotatedMessage'ın sınırlı bir listesini gönderiyorsanız ve bunun olay hub'ı çerçeve boyutu sınırı içinde olduğunu biliyorsanız, bunları bir send_batch çağrısıyla gönderebilirsiniz. Aksi takdirde, EventDataBatch oluşturmak ve boyut sınırına kadar toplu işleme EventData veya AmqpAnnotatedMessage eklemek için kullanın create_batch ve ardından toplu işlemi göndermek için bu yöntemi çağırın.
async send_batch(event_data_batch: EventDataBatch | List[EventData | AmqpAnnotatedMessage], **kwargs: Any) -> None
Parametreler
- event_data_batch
- Union[EventDataBatch, List[Union[EventData, AmqpAnnotatedMessage]]
Gönderilecek EventDataBatch nesnesi veya toplu olarak gönderilecek EventData listesi. Listedeki veya EventDataBatch'teki tüm EventData veya AmqpAnnotatedMessage aynı bölüme iner.
- timeout
- float
Olay verilerini arabelleğe alınamayan modda göndermek için en uzun bekleme süresi veya arabelleğe alınan modda olay verilerini arabelleğe almak için en uzun bekleme süresi. Arabelleğe alınamayan modda, üretici oluşturulduğunda belirtilen varsayılan bekleme süresi kullanılır. Arabelleğe alınan modda varsayılan bekleme süresi Yok'dur.
- partition_id
- str
Gönderilecek belirli bölüm kimliği. Varsayılan değer Yok'tur, bu durumda hizmet hepsini bir kez deneme kullanarak tüm bölümlere atar. partition_id belirtilirse ve EventDataBatch partition_id olduğundan event_data_batch bir EventDataBatch ise bir TypeError oluşturulur.
- partition_key
- str
Verilen partition_key, olay verileri hizmet tarafından karar verilen Olay Hub'ının belirli bir bölümüne gönderilir. Partition_key belirtilirse ve EventDataBatch'ın kendisinde partition_key olduğundan event_data_batch bir EventDataBatch ise bir TypeError oluşturulur. Hem partition_id hem de partition_key sağlanırsa, partition_id öncelik kazanır. UYARI: Gönderilecek olaylarda dize olmayan değerin partition_key ayarlanması önerilmez çünkü partition_key Olay Hub'ı hizmeti tarafından yoksayılır ve olaylar hepsini bir kez deneme kullanılarak tüm bölümlere atanır. Ayrıca, partition_key yalnızca dize türü olmasını bekleyen olayları kullanmak için SDK'lar vardır; bunlar dize olmayan değeri ayrıştıramayabilir.
Dönüş türü
Özel durumlar
Zaman aşımı parametresi tarafından belirtilen değer, olayın arabelleğe alınamayan modda gönderilebilmesinden önce geçerse veya olaylar arabelleğe alınan modda arabelleğe alınan moda sıralanabilir.
Örnekler
Olay verilerini zaman uyumsuz olarak gönderir
async with producer:
event_data_batch = await 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
await producer.send_batch(event_data_batch)
send_event
Olay verileri gönderir. Varsayılan olarak, onay alınana veya işlem zaman aşımına ulaşana kadar yöntemi engeller. EventHubProducerClient arabelleğe alınmış modda çalışacak şekilde yapılandırılmışsa, yöntemi olayı yerel arabelleğe alır ve döndürür. Üretici, arka planda otomatik toplu işlem ve gönderme işlemi yapar.
buffered_mode False ise, on_error geri çağırma isteğe bağlıdır ve hatalar şu şekilde işlenir: * Üretici istemci örneği oluşturma sırasında bir on_error geri çağırma geçirilirse,
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.
buffered_mode True ise, on_error geri çağırma gerekir ve hatalar şu şekilde işlenir: * Olaylar belirtilen zaman aşımı içinde sıraya alınamazsa, doğrudan bir hata oluşur.
* If events fail to send after enqueuing successfully, the *on_error* callback will be called.
async send_event(event_data: EventData | AmqpAnnotatedMessage, **kwargs: Any) -> None
Parametreler
- timeout
- float
Olay verilerini arabelleğe alınamayan modda göndermek için en uzun bekleme süresi veya arabelleğe alınan modda olay verilerini arabelleğe almak için maksimum bekleme süresi. Arabelleğe alınamayan modda, üretici oluşturulduğunda belirtilen varsayılan bekleme süresi kullanılır. Arabelleğe alınan modda varsayılan bekleme süresi Yok olur.
- partition_id
- str
Gönderilecek bölüm kimliği. Varsayılan değer Yok'tur. Bu durumda hizmet hepsini bir kez deneme kullanarak tüm bölümlere atanır. Partition_id belirtilirse ve EventDataBatch'ın kendisi partition_id olduğundan event_data_batch bir EventDataBatch ise bir TypeError oluşturulur.
- partition_key
- str
Verilen partition_key, olay verileri hizmet tarafından karar verilen Olay Hub'ının belirli bir bölümüne gönderilir. Partition_key belirtilirse ve EventDataBatch'ın kendisinde partition_key olduğundan event_data_batch bir EventDataBatch ise bir TypeError tetiklenir. Hem partition_id hem de partition_key sağlanırsa, partition_id öncelikli olur. UYARI: Gönderilecek olaylarda dize olmayan değerin partition_key ayarlanması önerilmez çünkü partition_key Olay Hub'ı hizmeti tarafından yoksayılır ve olaylar hepsini bir kez deneme kullanılarak tüm bölümlere atanır. Ayrıca, partition_key yalnızca dize türü olmasını bekleyen olayları kullanmak için SDK'lar vardır; bunlar dize olmayan değeri ayrıştıramayabilir.
Dönüş türü
Özel durumlar
Zaman aşımı parametresi tarafından belirtilen değer, olay arabelleğe alınmamış modda gönderilmeden önce geçerse veya olaylar arabelleğe alınan modda arabelleğe alınan moda sıralanamazsa.
Öznitelikler
total_buffered_event_count
Tüm bölümlerde arabelleğe alınmış ve yayımlanmayı bekleyen olayların toplam sayısı. Arabelleğe alınamayan modda Hiçbiri döndürür. NOT: Olay arabelleği bir arka plan eş yordamda işlenir, bu nedenle bu API tarafından bildirilen arabellekteki olay sayısı yalnızca bir yaklaşık değer olarak kabul edilmelidir ve yalnızca hata ayıklamada kullanılması önerilir.
Dönüş türü
Azure SDK for Python