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.BaseHandlerServiceBusSenderazure.servicebus._servicebus_sender.SenderMixinServiceBusSender
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
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
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
- 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
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
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
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
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]]]
Zpráva nebo seznam zpráv, které chcete naplánovat.
- 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
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]]]
Zpráva ServiceBus, která se má odeslat.
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
Příklady
Odeslat zprávu.
with servicebus_sender:
message_send = ServiceBusMessage("Hello World")
servicebus_sender.send_messages(message_send)
Atributy
client_identifier
Azure SDK for Python