Sdílet prostřednictvím


ServiceBusSender Třída

ServiceBusSender Třída definuje rozhraní vysoké úrovně pro odesílání zpráv do Azure Service Bus fronty nebo tématu.

K vytvoření instance ServiceBusSender použijte get_<queue/topic>_sender metodu ~azure.servicebus.ServiceBusClient.

Dědičnost
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)

Parametry

fully_qualified_namespace
str
Vyžadováno

Plně kvalifikovaný název hostitele pro obor názvů služby Service Bus. Formát oboru názvů je .servicebus.windows.net.

credential
TokenCredential nebo AzureSasCredential nebo AzureNamedKeyCredential
Vyžadováno

Objekt přihlašovacích údajů používaný k ověřování, který implementuje konkrétní rozhraní pro získávání tokenů. Přijímá objekty přihlašovacích údajů vygenerované knihovnou azure-identity a objekty, které implementují metodu *get_token(self, scopes), případně je možné poskytnout také AzureSasCredential.

queue_name
str

Cesta konkrétní fronty služby Service Bus, ke které se klient připojuje.

topic_name
str

Cesta konkrétního tématu služby Service Bus, ke které se klient připojuje.

logging_enable
bool

Zda se mají protokoly trasování sítě vypisovat do protokolovacího nástroje. Výchozí hodnota je False.

transport_type
TransportType

Typ přenosového protokolu, který se použije pro komunikaci se službou Service Bus. Výchozí hodnota je TransportType.Amqp.

http_proxy
Dict

Nastavení proxy serveru HTTP. Musí se jednat o slovník s následujícími klíči: "proxy_hostname" (hodnota str) a "proxy_port" (hodnota int). Kromě toho můžou být k dispozici také následující klíče: uživatelské jméno, heslo.

user_agent
str

Pokud je zadaný, přidá se před předdefinovaný řetězec uživatelského agenta.

client_identifier
str

Identifikátor založený na řetězci pro jedinečnou identifikaci instance klienta. Service Bus ji přidruží k některým chybovým zprávm, aby se usnadnila korelace chyb. Pokud není zadáno, vygeneruje se jedinečné ID.

socket_timeout
float

Čas v sekundách, kdy by měl podkladový soket na připojení čekat při odesílání a příjmu dat před vypršením časového limitu. Výchozí hodnota je 0,2 pro TransportType.Amqp a 1 pro TransportType.AmqpOverWebsocket. Pokud dochází k chybám připojení kvůli vypršení časového limitu zápisu, může být potřeba předat větší než výchozí hodnotu.

Proměnné

fully_qualified_namespace
str

Plně kvalifikovaný název hostitele pro obor názvů služby Service Bus. Formát oboru názvů je .servicebus.windows.net.

entity_name
str

Název entity, ke které se klient připojuje.

Metody

cancel_scheduled_messages

Zrušte jednu nebo více zpráv, které byly dříve naplánované a stále čekají na vyřízení.

close

Zavřete propojení obslužných rutin (a připojení, pokud obslužná rutina používá samostatné připojení).

Pokud se obslužná rutina již zavřela, tato operace nic neudělá.

create_message_batch

Vytvořte objekt ServiceBusMessageBatch s maximální velikostí veškerého obsahu, který je omezen max_size_in_bytes. Max_size nesmí být větší než maximální povolená velikost zpráv definovaná službou.

schedule_messages

Odeslat zprávu nebo více zpráv, které mají být v určitém čase zapsány do fronty. Vrátí seznam pořadových čísel zpráv ve frontě.

send_messages

Odesílá zprávu a blokuje, dokud nedojde k potvrzení nebo vypršení časového limitu operace.

Pokud byl poskytnut seznam zpráv, pokusí se je odeslat jako jednu dávku a vyvolá chybu ValueError , pokud se nevejdou do jedné dávky.

cancel_scheduled_messages

Zrušte jednu nebo více zpráv, které byly dříve naplánované a stále čekají na vyřízení.

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

Parametry

sequence_numbers
int nebo list[int]
Vyžadováno

Pořadová čísla naplánovaných zpráv.

timeout
float

Celkový časový limit operace v sekundách včetně všech opakování. Hodnota musí být větší než 0, pokud je zadána. Výchozí hodnota je Žádný, což znamená žádný časový limit.

Návratový typ

Výjimky

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

Příklady

Rušení zpráv, které mají být odesílány v budoucnu


   with servicebus_sender:
       servicebus_sender.cancel_scheduled_messages(sequence_nums)

close

Zavřete propojení obslužných rutin (a připojení, pokud obslužná rutina používá samostatné připojení).

Pokud se obslužná rutina již zavřela, tato operace nic neudělá.

close() -> None

Návratový typ

Výjimky

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

create_message_batch

Vytvořte objekt ServiceBusMessageBatch s maximální velikostí veškerého obsahu, který je omezen max_size_in_bytes. Max_size nesmí být větší než maximální povolená velikost zpráv definovaná službou.

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

Parametry

max_size_in_bytes
Optional[int]
výchozí hodnota: None

Maximální velikost bajtů dat, která může objekt ServiceBusMessageBatch obsahovat. Ve výchozím nastavení je hodnota určena vaší úrovní služby Service Bus.

Návraty

A Objekt ServiceBusMessageBatch

Návratový typ

Výjimky

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

Příklady

Vytvoření objektu ServiceBusMessageBatch v omezené velikosti


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

schedule_messages

Odeslat zprávu nebo více zpráv, které mají být v určitém čase zapsány do fronty. Vrátí seznam pořadových čísel zpráv ve frontě.

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

Parametry

messages
Union[ServiceBusMessage, AmqpAnnotatedMessage, List[Union[ServiceBusMessage, AmqpAnnotatedMessage]]]
Vyžadováno

Zpráva nebo seznam zpráv, které chcete naplánovat.

schedule_time_utc
datetime
Vyžadováno

Datum a čas UTC pro zařazení zpráv do fronty.

timeout
float

Celkový časový limit operace v sekundách včetně všech opakování. Hodnota musí být větší než 0, pokud je zadána. Výchozí hodnota je Žádný, což znamená žádný časový limit.

Návraty

Seznam pořadových čísel zpráv ve frontě.

Návratový typ

Výjimky

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

Příklady

Naplánování odeslání zprávy v budoucnu


   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

Odesílá zprávu a blokuje, dokud nedojde k potvrzení nebo vypršení časového limitu operace.

Pokud byl poskytnut seznam zpráv, pokusí se je odeslat jako jednu dávku a vyvolá chybu ValueError , pokud se nevejdou do jedné dávky.

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

Parametry

message
Union[ServiceBusMessage, ServiceBusMessageBatch, AmqpAnnotatedMessage, List[Union[ServiceBusMessage, AmqpAnnotatedMessage]]]
Vyžadováno

Zpráva ServiceBus, která se má odeslat.

timeout
Optional[float]

Celkový časový limit operace v sekundách včetně všech opakování. Hodnota musí být větší než 0, pokud je zadána. Výchozí hodnota je Žádný, což znamená žádný časový limit.

Návratový typ

Výjimky

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

Příklady

Odeslat zprávu.


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

Atributy

client_identifier

Získejte client_identifier ServiceBusSender přidružené k instanci odesílatele.

Návratový typ

str