Delen via


ServiceBusSender Klas

De ServiceBusSender-klasse definieert een interface op hoog niveau voor het verzenden van berichten naar de Azure Service Bus wachtrij of onderwerp.

Gebruik de get_<queue/topic>_sender methode ~azure.servicebus.ServiceBusClient om een ServiceBusSender-exemplaar te maken.

Overname
azure.servicebus._base_handler.BaseHandler
ServiceBusSender
azure.servicebus._servicebus_sender.SenderMixin
ServiceBusSender

Constructor

ServiceBusSender(fully_qualified_namespace: str, credential: TokenCredential | AzureSasCredential | AzureNamedKeyCredential, *, queue_name: str | None = None, topic_name: str | None = None, **kwargs: Any)

Parameters

fully_qualified_namespace
str
Vereist

De volledig gekwalificeerde hostnaam voor de Service Bus-naamruimte. De indeling van de naamruimte is : .servicebus.windows.net.

credential
TokenCredential of AzureSasCredential of AzureNamedKeyCredential
Vereist

Het referentieobject dat wordt gebruikt voor verificatie, waarmee een bepaalde interface wordt geïmplementeerd voor het ophalen van tokens. Het accepteert referentieobjecten die zijn gegenereerd door de azure-identity-bibliotheek en objecten die de methode *get_token (zelf, bereiken) implementeren, of een AzureSasCredential kunnen ook worden opgegeven.

queue_name
str

Het pad van een specifieke Service Bus-wachtrij waar de client verbinding mee maakt.

topic_name
str

Het pad naar een specifiek Service Bus-onderwerp waar de client verbinding mee maakt.

logging_enable
bool

Of netwerktraceringslogboeken moeten worden uitgevoerd naar de logboekregistratie. De standaardwaarde is False.

transport_type
TransportType

Het type transportprotocol dat wordt gebruikt voor de communicatie met de Service Bus-service. De standaardwaarde is TransportType.Amqp.

http_proxy
Dict

HTTP-proxyinstellingen. Dit moet een woordenlijst zijn met de volgende sleutels: 'proxy_hostname' (str-waarde) en 'proxy_port' (int-waarde). Daarnaast kunnen de volgende sleutels ook aanwezig zijn: 'gebruikersnaam', 'wachtwoord'.

user_agent
str

Indien opgegeven, wordt deze toegevoegd vóór de ingebouwde tekenreeks van de gebruikersagent.

client_identifier
str

Een id op basis van tekenreeksen om het clientexemplaren uniek te identificeren. Service Bus koppelt deze aan een aantal foutberichten voor een eenvoudigere correlatie van fouten. Als u dit niet opgeeft, wordt er een unieke id gegenereerd.

socket_timeout
float

De tijd in seconden dat de onderliggende socket op de verbinding moet wachten bij het verzenden en ontvangen van gegevens voordat er een time-out optreedt. De standaardwaarde is 0,2 voor TransportType.Amqp en 1 voor TransportType.AmqpOverWebsocket. Als er verbindingsfouten optreden vanwege een time-out van schrijfbewerkingen, moet mogelijk een grotere waarde dan de standaardwaarde worden doorgegeven.

Variabelen

fully_qualified_namespace
str

De volledig gekwalificeerde hostnaam voor de Service Bus-naamruimte. De indeling van de naamruimte is : .servicebus.windows.net.

entity_name
str

De naam van de entiteit waarmee de client verbinding maakt.

Methoden

cancel_scheduled_messages

Annuleer een of meer berichten die eerder zijn gepland en nog in behandeling zijn.

close

Sluit de handlerkoppelingen (en de verbinding als de handler een afzonderlijke verbinding gebruikt).

Als de handler al is gesloten, doet deze bewerking niets.

create_message_batch

Maak een ServiceBusMessageBatch-object met de maximale grootte van alle inhoud die wordt beperkt door max_size_in_bytes. De max_size mag niet groter zijn dan de maximaal toegestane berichtgrootte die door de service is gedefinieerd.

schedule_messages

Verzend een bericht of meerdere berichten die op een specifiek tijdstip moeten worden verzonden. Retourneert een lijst met de volgnummers van de enqueued berichten.

send_messages

Hiermee wordt een bericht verzonden en geblokkeerd totdat de bevestiging is ontvangen of een time-out optreedt voor de bewerking.

Als er een lijst met berichten is opgegeven, probeert u deze als één batch te verzenden, waarbij een ValueError wordt gegenereerd als ze niet in één batch passen.

cancel_scheduled_messages

Annuleer een of meer berichten die eerder zijn gepland en nog in behandeling zijn.

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

Parameters

sequence_numbers
int of list[int]
Vereist

De volgnummers van de geplande berichten.

timeout
float

De totale time-out van de bewerking in seconden, inclusief alle nieuwe pogingen. De waarde moet groter zijn dan 0 indien opgegeven. De standaardwaarde is Geen, wat betekent dat er geen time-out is.

Retourtype

Uitzonderingen

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

Voorbeelden

Berichten annuleren die in de toekomst moeten worden verzonden


   with servicebus_sender:
       servicebus_sender.cancel_scheduled_messages(sequence_nums)

close

Sluit de handlerkoppelingen (en de verbinding als de handler een afzonderlijke verbinding gebruikt).

Als de handler al is gesloten, doet deze bewerking niets.

close() -> None

Retourtype

Uitzonderingen

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

create_message_batch

Maak een ServiceBusMessageBatch-object met de maximale grootte van alle inhoud die wordt beperkt door max_size_in_bytes. De max_size mag niet groter zijn dan de maximaal toegestane berichtgrootte die door de service is gedefinieerd.

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

Parameters

max_size_in_bytes
Optional[int]
standaardwaarde: None

De maximale grootte van bytesgegevens die een ServiceBusMessageBatch-object kan bevatten. De waarde wordt standaard bepaald door uw Service Bus-laag.

Retouren

Een ServiceBusMessageBatch-object

Retourtype

Uitzonderingen

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

Voorbeelden

ServiceBusMessageBatch-object binnen een beperkte grootte maken


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

schedule_messages

Verzend een bericht of meerdere berichten die op een specifiek tijdstip moeten worden verzonden. Retourneert een lijst met de volgnummers van de enqueued berichten.

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

Parameters

messages
Union[ServiceBusMessage, AmqpAnnotatedMessage, List[Union[ServiceBusMessage, AmqpAnnotatedMessage]]]
Vereist

Het bericht of de lijst met berichten die u wilt plannen.

schedule_time_utc
datetime
Vereist

De utc-datum en -tijd voor het in de wachtrij plaatsen van de berichten.

timeout
float

De totale time-out van de bewerking in seconden, inclusief alle nieuwe pogingen. De waarde moet groter zijn dan 0 indien opgegeven. De standaardwaarde is Geen, wat betekent dat er geen time-out is.

Retouren

Een lijst met de volgnummers van de enqueued berichten.

Retourtype

Uitzonderingen

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

Voorbeelden

Een bericht plannen dat in de toekomst wordt verzonden


   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

Hiermee wordt een bericht verzonden en geblokkeerd totdat de bevestiging is ontvangen of een time-out optreedt voor de bewerking.

Als er een lijst met berichten is opgegeven, probeert u deze als één batch te verzenden, waarbij een ValueError wordt gegenereerd als ze niet in één batch passen.

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

Parameters

message
Union[ServiceBusMessage, ServiceBusMessageBatch, AmqpAnnotatedMessage, List[Union[ServiceBusMessage, AmqpAnnotatedMessage]]]
Vereist

Het ServiceBus-bericht dat moet worden verzonden.

timeout
Optional[float]

De totale time-out van de bewerking in seconden, inclusief alle nieuwe pogingen. De waarde moet groter zijn dan 0 indien opgegeven. De standaardwaarde is Geen, wat betekent dat er geen time-out is.

Retourtype

Uitzonderingen

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

Voorbeelden

Bericht verzenden.


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

Kenmerken

client_identifier

Haal de ServiceBusSender-client_identifier op die is gekoppeld aan het afzenderexemplaren.

Retourtype

str