ServiceBusSender Klasse
Die ServiceBusSender-Klasse definiert eine allgemeine Schnittstelle zum Senden von Nachrichten an die Azure Service Bus Queue oder Topic.
Verwenden Sie die get_<queue/topic>_sender
-Methode von ~azure.servicebus.ServiceBusClient, um einen ServiceBusSender-instance zu erstellen.
- Vererbung
-
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)
Parameter
- fully_qualified_namespace
- str
Der vollqualifizierte Hostname für den Service Bus-Namespace. Das Namespaceformat ist . servicebus.windows.net.
- credential
- TokenCredential oder AzureSasCredential oder AzureNamedKeyCredential
Das für die Authentifizierung verwendete Anmeldeinformationsobjekt, das eine bestimmte Schnittstelle zum Abrufen von Token implementiert. Es akzeptiert Anmeldeinformationsobjekte, die von der azure-identity-Bibliothek generiert werden, und Objekte, die die *get_token(self, scopes) -Methode implementieren, oder alternativ kann auch ein AzureSasCredential-Objekt bereitgestellt werden.
- queue_name
- str
Der Pfad einer bestimmten Service Bus-Warteschlange, mit der der Client eine Verbindung herstellt.
- topic_name
- str
Der Pfad eines bestimmten Service Bus-Themas, mit dem der Client eine Verbindung herstellt.
- logging_enable
- bool
Gibt an, ob Netzwerkablaufverfolgungsprotokolle an die Protokollierung ausgegeben werden sollen. Der Standardwert ist False.
- transport_type
- TransportType
Der Typ des Transportprotokolls, das für die Kommunikation mit dem Service Bus-Dienst verwendet wird. Der Standardwert ist TransportType.Amqp.
- http_proxy
- Dict
HTTP-Proxyeinstellungen. Dies muss ein Wörterbuch mit den folgenden Schlüsseln sein: "proxy_hostname" (str-Wert) und "proxy_port" (int-Wert). Darüber hinaus können auch die folgenden Schlüssel vorhanden sein: "Benutzername", "Kennwort".
- user_agent
- str
Wenn angegeben, wird dies vor der integrierten Benutzer-Agent-Zeichenfolge hinzugefügt.
- client_identifier
- str
Ein Zeichenfolgenbasierter Bezeichner zur eindeutigen Identifizierung des Clients instance. Service Bus ordnet sie einigen Fehlermeldungen zu, um die Korrelation von Fehlern zu vereinfachen. Wenn nicht angegeben, wird eine eindeutige ID generiert.
- socket_timeout
- float
Die Zeit in Sekunden, die der zugrunde liegende Socket für die Verbindung beim Senden und Empfangen von Daten warten soll, bevor ein Timeout auftritt. Der Standardwert ist 0,2 für TransportType.Amqp und 1 für TransportType.AmqpOverWebsocket. Wenn Verbindungsfehler aufgrund eines Schreibzeitlimits auftreten, muss möglicherweise ein größer als der Standardwert übergeben werden.
Variablen
- fully_qualified_namespace
- str
Der vollqualifizierte Hostname für den Service Bus-Namespace. Das Namespaceformat ist . servicebus.windows.net.
- entity_name
- str
Der Name der Entität, mit der der Client eine Verbindung herstellt.
Methoden
cancel_scheduled_messages |
Abbrechen einer oder mehrerer Nachrichten, die zuvor geplant wurden und noch ausstehen. |
close |
Schließen Sie die Handlerlinks (und die Verbindung, wenn der Handler eine separate Verbindung verwendet). Wenn der Handler bereits geschlossen wurde, führt dieser Vorgang nichts aus. |
create_message_batch |
Erstellen Sie ein ServiceBusMessageBatch-Objekt mit der maximalen Größe aller Inhalte, die durch max_size_in_bytes eingeschränkt werden. Die max_size sollte nicht größer als die vom Dienst definierte maximal zulässige Nachrichtengröße sein. |
schedule_messages |
Senden Sie eine Nachricht oder mehrere Nachrichten, die zu einem bestimmten Zeitpunkt in die Warteschlange eingereiht werden sollen. Gibt eine Liste der Sequenznummern der in die Warteschlange eingereihten Nachrichten zurück. |
send_messages |
Sendet Eine Nachricht und blockiert, bis die Bestätigung empfangen wird oder ein Timeout des Vorgangs auftritt. Wenn eine Liste von Nachrichten bereitgestellt wurde, versucht, sie als einzelner Batch zu senden, wodurch ein ValueError ausgelöst wird, wenn sie nicht in einen einzelnen Batch passen. |
cancel_scheduled_messages
Abbrechen einer oder mehrerer Nachrichten, die zuvor geplant wurden und noch ausstehen.
cancel_scheduled_messages(sequence_numbers: int | List[int], *, timeout: float | None = None, **kwargs: Any) -> None
Parameter
- timeout
- float
Das Gesamtzeitlimit des Vorgangs in Sekunden, einschließlich aller Wiederholungen. Der Wert muss größer als 0 sein, wenn er angegeben wird. Der Standardwert ist None, d. h. kein Timeout.
Rückgabetyp
Ausnahmen
Beispiele
Abbruch von Nachrichten, die in Zukunft gesendet werden sollen
with servicebus_sender:
servicebus_sender.cancel_scheduled_messages(sequence_nums)
close
Schließen Sie die Handlerlinks (und die Verbindung, wenn der Handler eine separate Verbindung verwendet).
Wenn der Handler bereits geschlossen wurde, führt dieser Vorgang nichts aus.
close() -> None
Rückgabetyp
Ausnahmen
create_message_batch
Erstellen Sie ein ServiceBusMessageBatch-Objekt mit der maximalen Größe aller Inhalte, die durch max_size_in_bytes eingeschränkt werden. Die max_size sollte nicht größer als die vom Dienst definierte maximal zulässige Nachrichtengröße sein.
create_message_batch(max_size_in_bytes: int | None = None) -> ServiceBusMessageBatch
Parameter
Die maximale Größe der Bytedaten, die ein ServiceBusMessageBatch-Objekt enthalten kann. Standardmäßig wird der Wert von Ihrem Service Bus-Tarif bestimmt.
Gibt zurück
Ein ServiceBusMessageBatch-Objekt
Rückgabetyp
Ausnahmen
Beispiele
Erstellen eines ServiceBusMessageBatch-Objekts in begrenzter Größe
with servicebus_sender:
batch_message = servicebus_sender.create_message_batch()
batch_message.add_message(ServiceBusMessage("Single message inside batch"))
schedule_messages
Senden Sie eine Nachricht oder mehrere Nachrichten, die zu einem bestimmten Zeitpunkt in die Warteschlange eingereiht werden sollen. Gibt eine Liste der Sequenznummern der in die Warteschlange eingereihten Nachrichten zurück.
schedule_messages(messages: MessageTypes, schedule_time_utc: datetime, *, timeout: float | None = None, **kwargs: Any) -> List[int]
Parameter
- messages
- Union[ServiceBusMessage, AmqpAnnotatedMessage, List[Union[ServiceBusMessage, AmqpAnnotatedMessage]]]
Die Nachricht oder Liste der zu planenden Nachrichten.
- schedule_time_utc
- datetime
Das Utc-Datum und die Uhrzeit, um die Nachrichten in die Warteschlange zu quetieren.
- timeout
- float
Das Gesamtzeitlimit des Vorgangs in Sekunden, einschließlich aller Wiederholungen. Der Wert muss größer als 0 sein, wenn er angegeben wird. Der Standardwert ist None, d. h. kein Timeout.
Gibt zurück
Eine Liste der Sequenznummern der in die Warteschlange eingereihten Nachrichten.
Rückgabetyp
Ausnahmen
Beispiele
Planen einer Nachricht, die in Zukunft gesendet werden soll
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
Sendet Eine Nachricht und blockiert, bis die Bestätigung empfangen wird oder ein Timeout des Vorgangs auftritt.
Wenn eine Liste von Nachrichten bereitgestellt wurde, versucht, sie als einzelner Batch zu senden, wodurch ein ValueError ausgelöst wird, wenn sie nicht in einen einzelnen Batch passen.
send_messages(message: MessageTypes | ServiceBusMessageBatch, *, timeout: float | None = None, **kwargs: Any) -> None
Parameter
- message
- Union[ServiceBusMessage, ServiceBusMessageBatch, AmqpAnnotatedMessage, List[Union[ServiceBusMessage, AmqpAnnotatedMessage]]]
Die zu sendende ServiceBus-Nachricht.
Das Gesamtzeitlimit des Vorgangs in Sekunden, einschließlich aller Wiederholungen. Der Wert muss größer als 0 sein, wenn er angegeben wird. Der Standardwert ist None, d. h. kein Timeout.
Rückgabetyp
Ausnahmen
Beispiele
Nachricht senden.
with servicebus_sender:
message_send = ServiceBusMessage("Hello World")
servicebus_sender.send_messages(message_send)
Attribute
client_identifier
Rufen Sie die serviceBusSender-client_identifier ab, die dem absender-instance zugeordnet ist.
Rückgabetyp
Azure SDK for Python