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.aio.ServiceBusClient, um einen ServiceBusSender-instance zu erstellen.
- Vererbung
-
azure.servicebus.aio._base_handler_async.BaseHandlerServiceBusSenderazure.servicebus._servicebus_sender.SenderMixinServiceBusSender
Konstruktor
ServiceBusSender(fully_qualified_namespace: str, credential: AsyncTokenCredential | 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
- AsyncTokenCredential 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. Es kann nur eine der queue_name oder topic_name bereitgestellt werden.
- topic_name
- str
Der Pfad eines bestimmten Service Bus-Themas, mit dem der Client eine Verbindung herstellt. Es kann nur eine der queue_name oder topic_name bereitgestellt werden.
- 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 Handlerverbindung. Wenn der Handler bereits geschlossen wurde, führt dieser Vorgang nichts aus. Eine optionale Ausnahme kann übergeben werden, um anzugeben, dass der Handler aufgrund eines Fehlers heruntergefahren wurde. |
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 vom Dienst 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.
async 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
async with servicebus_sender:
await servicebus_sender.cancel_scheduled_messages(sequence_nums)
close
Schließen Sie die Handlerverbindung.
Wenn der Handler bereits geschlossen wurde, führt dieser Vorgang nichts aus. Eine optionale Ausnahme kann übergeben werden, um anzugeben, dass der Handler aufgrund eines Fehlers heruntergefahren wurde.
async 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.
async 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
ServiceBusMessageBatch-Objekt
Rückgabetyp
Ausnahmen
Beispiele
Erstellen eines ServiceBusMessageBatch-Objekts in begrenzter Größe
async with servicebus_sender:
batch_message = await 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 vom Dienst in die Warteschlange eingereiht werden sollen. Gibt eine Liste der Sequenznummern der in die Warteschlange eingereihten Nachrichten zurück.
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]
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
Die Sequenznummern der in die Warteschlange eingereihten Nachrichten.
Rückgabetyp
Ausnahmen
Beispiele
Planen einer Nachricht, die in Zukunft gesendet werden soll
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
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.
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
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.
async with servicebus_sender:
message_send = ServiceBusMessage("Hello World")
await servicebus_sender.send_messages(message_send)
Attribute
client_identifier
Rufen Sie den ServiceBusSender-Clientbezeichner ab, der dem Absender instance zugeordnet ist.
Rückgabetyp
Azure SDK for Python