ServiceBusSender Sınıf
ServiceBusSender sınıfı, Azure Service Bus Kuyruğuna veya Konusuna ileti göndermek için üst düzey bir arabirim tanımlar.
ServiceBusSender örneği oluşturmak için lütfen ~azure.servicebus.aio.ServiceBusClient yöntemini kullanın get_<queue/topic>_sender
.
- Devralma
-
azure.servicebus.aio._base_handler_async.BaseHandlerServiceBusSenderazure.servicebus._servicebus_sender.SenderMixinServiceBusSender
Oluşturucu
ServiceBusSender(fully_qualified_namespace: str, credential: AsyncTokenCredential | AzureSasCredential | AzureNamedKeyCredential, *, queue_name: str | None = None, topic_name: str | None = None, **kwargs: Any)
Parametreler
- fully_qualified_namespace
- str
Service Bus ad alanının tam konak adı. Ad alanı biçimi: .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 kimlik bilgisi nesnelerini kabul eder ve *get_token(self, kapsamlar) yöntemini uygulayan nesneler veya alternatif olarak bir AzureSasCredential da sağlanabilir.
- queue_name
- str
İstemcinin bağlandığınız belirli Service Bus Kuyruğunun yolu. queue_name veya topic_name yalnızca biri sağlanabilir.
- topic_name
- str
İstemcinin bağlı olduğu belirli Service Bus Konusunun yolu. queue_name veya topic_name yalnızca biri sağlanabilir.
- 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.
- transport_type
- TransportType
Service Bus hizmetiyle iletişim kurmak için kullanılacak aktarım protokolünün türü. Varsayılan değer TransportType.Amqp'tir.
- 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'.
- user_agent
- str
Belirtilirse, bu yerleşik kullanıcı aracısı dizesinin önüne eklenir.
- client_identifier
- str
İstemci örneğini benzersiz olarak tanımlamak için dize tabanlı tanımlayıcı. Service Bus, hataların daha kolay bağıntılanması için bunu bazı hata iletileriyle ilişkilendirir. Belirtilmezse, benzersiz bir kimlik oluşturulur.
- 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 bağlantı hataları oluşuyorsa, varsayılan değerden daha büyük bir değerin geçirilmesi gerekebilir.
Değişkenler
- fully_qualified_namespace
- str
Service Bus ad alanının tam konak adı. Ad alanı biçimi: .servicebus.windows.net.
- entity_name
- str
İstemcinin bağlandığını varlığın adı.
Yöntemler
cancel_scheduled_messages |
Daha önce zamanlanmış ve hala beklemede olan bir veya daha fazla iletiyi iptal edin. |
close |
İşleyici bağlantısını kapatın. İşleyici zaten kapalıysa, bu işlem hiçbir şey yapmaz. İşleyicinin hata nedeniyle kapatıldığını belirtmek için isteğe bağlı bir özel durum geçirilebilir. |
create_message_batch |
max_size_in_bytes tarafından kısıtlanan tüm içeriğin en büyük boyutuna sahip bir ServiceBusMessageBatch nesnesi oluşturun. max_size, hizmet tarafından tanımlanan izin verilen maksimum ileti boyutundan büyük olmamalıdır. |
schedule_messages |
Hizmet tarafından belirli bir zamanda sıralanacak İleti veya birden çok İleti gönderin. Sıralanan iletilerin sıra numaralarının listesini döndürür. |
send_messages |
Onay alınana veya işlem zaman aşımına ulaşana kadar ileti ve bloklar gönderir. bir ileti listesi sağlandıysa, bunları tek bir toplu iş olarak göndermeyi dener ve tek bir toplu işleme sığamazlarsa bir ValueError oluşturur. |
cancel_scheduled_messages
Daha önce zamanlanmış ve hala beklemede olan bir veya daha fazla iletiyi iptal edin.
async cancel_scheduled_messages(sequence_numbers: int | List[int], *, timeout: float | None = None, **kwargs: Any) -> None
Parametreler
- timeout
- float
Tüm yeniden denemeler dahil olmak üzere saniye olarak toplam işlem zaman aşımı. Belirtilirse değer 0'dan büyük olmalıdır. Varsayılan değer Yok'tır, yani zaman aşımı yoktur.
Dönüş türü
Özel durumlar
Örnekler
Gelecekte gönderilmek üzere zamanlanmış iletileri iptal etme
async with servicebus_sender:
await servicebus_sender.cancel_scheduled_messages(sequence_nums)
close
İşleyici bağlantısını kapatın.
İşleyici zaten kapalıysa, bu işlem hiçbir şey yapmaz. İşleyicinin hata nedeniyle kapatıldığını belirtmek için isteğe bağlı bir özel durum geçirilebilir.
async close() -> None
Dönüş türü
Özel durumlar
create_message_batch
max_size_in_bytes tarafından kısıtlanan tüm içeriğin en büyük boyutuna sahip bir ServiceBusMessageBatch nesnesi oluşturun. max_size, hizmet tarafından tanımlanan izin verilen maksimum ileti boyutundan büyük olmamalıdır.
async create_message_batch(max_size_in_bytes: int | None = None) -> ServiceBusMessageBatch
Parametreler
ServiceBusMessageBatch nesnesinin tutabileceği bayt verisi boyutu üst sınırı. Varsayılan olarak, değer Service Bus katmanınız tarafından belirlenir.
Döndürülenler
ServiceBusMessageBatch nesnesi
Dönüş türü
Özel durumlar
Örnekler
Sınırlı boyutta ServiceBusMessageBatch nesnesi oluşturma
async with servicebus_sender:
batch_message = await servicebus_sender.create_message_batch()
batch_message.add_message(ServiceBusMessage("Single message inside batch"))
schedule_messages
Hizmet tarafından belirli bir zamanda sıralanacak İleti veya birden çok İleti gönderin. Sıralanan iletilerin sıra numaralarının listesini döndürür.
async schedule_messages(messages: Mapping[str, Any] | ServiceBusMessage | AmqpAnnotatedMessage | Iterable[Mapping[str, Any]] | Iterable[ServiceBusMessage] | Iterable[AmqpAnnotatedMessage], schedule_time_utc: datetime, *, timeout: float | None = None, **kwargs: Any) -> List[int]
Parametreler
- messages
- Union[ServiceBusMessage, AmqpAnnotatedMessage, List[Union[ServiceBusMessage, AmqpAnnotatedMessage]]]
Zamanlanması gereken ileti veya ileti listesi.
- timeout
- float
Tüm yeniden denemeler dahil olmak üzere saniye olarak toplam işlem zaman aşımı. Belirtilirse değer 0'dan büyük olmalıdır. Varsayılan değer Yok'tır, yani zaman aşımı yoktur.
Döndürülenler
Sıralanan iletilerin sıra numaraları.
Dönüş türü
Özel durumlar
Örnekler
gelecekte gönderilecek iletiyi zamanlama
async with servicebus_sender:
scheduled_time_utc = datetime.datetime.utcnow() + datetime.timedelta(seconds=30)
scheduled_messages = [ServiceBusMessage("Scheduled message") for _ in range(10)]
sequence_nums = await servicebus_sender.schedule_messages(scheduled_messages, scheduled_time_utc)
send_messages
Onay alınana veya işlem zaman aşımına ulaşana kadar ileti ve bloklar gönderir.
bir ileti listesi sağlandıysa, bunları tek bir toplu iş olarak göndermeyi dener ve tek bir toplu işleme sığamazlarsa bir ValueError oluşturur.
async send_messages(message: Mapping[str, Any] | ServiceBusMessage | AmqpAnnotatedMessage | Iterable[Mapping[str, Any]] | Iterable[ServiceBusMessage] | Iterable[AmqpAnnotatedMessage] | ServiceBusMessageBatch, *, timeout: float | None = None, **kwargs: Any) -> None
Parametreler
- message
- Union[ServiceBusMessage, ServiceBusMessageBatch, AmqpAnnotatedMessage, List[Union[ServiceBusMessage, AmqpAnnotatedMessage]]]
Gönderilecek ServiceBus iletisi.
Tüm yeniden denemeler dahil olmak üzere saniye olarak toplam işlem zaman aşımı. Belirtilirse değer 0'dan büyük olmalıdır. Varsayılan değer Yok'tır, yani zaman aşımı yoktur.
Dönüş türü
Özel durumlar
Örnekler
İleti gönder'i seçin.
async with servicebus_sender:
message_send = ServiceBusMessage("Hello World")
await servicebus_sender.send_messages(message_send)
Öznitelikler
client_identifier
Azure SDK for Python