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.BaseHandler
ServiceBusSender
azure.servicebus._servicebus_sender.SenderMixin
ServiceBusSender

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
Gerekli

Service Bus ad alanının tam konak adı. Ad alanı biçimi: .servicebus.windows.net.

credential
AsyncTokenCredential veya AzureSasCredential veya AzureNamedKeyCredential
Gerekli

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

sequence_numbers
int veya list[int]
Gerekli

Zamanlanan iletilerin sıra numaraları.

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

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

Ö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

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

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

max_size_in_bytes
int veya None
varsayılan değer: None

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

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

Ö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]]]
Gerekli

Zamanlanması gereken ileti veya ileti listesi.

schedule_time_utc
datetime
Gerekli

İletileri sıralamak için utc tarihi ve saati.

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

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

Ö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

timeout
Optional[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

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

Ö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

Gönderen örneğiyle ilişkili ServiceBusSender istemci tanımlayıcısını alın.

Dönüş türü

str