Share via


ServiceBusSender Klass

Klassen ServiceBusSender definierar ett gränssnitt på hög nivå för att skicka meddelanden till Azure Service Bus kö eller ämne.

get_<queue/topic>_sender Använd metoden ~azure.servicebus.ServiceBusClient för att skapa en ServiceBusSender-instans.

Arv
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)

Parametrar

fully_qualified_namespace
str
Obligatorisk

Det fullständigt kvalificerade värdnamnet för Service Bus-namnområdet. Namnområdesformatet är: .servicebus.windows.net.

credential
TokenCredential eller AzureSasCredential eller AzureNamedKeyCredential
Obligatorisk

Det autentiseringsobjekt som används för autentisering som implementerar ett visst gränssnitt för att hämta token. Den accepterar autentiseringsobjekt som genereras av azure-identity-biblioteket och objekt som implementerar metoden *get_token(self, scopes) eller alternativt kan en AzureSasCredential också tillhandahållas.

queue_name
str

Sökvägen till en specifik Service Bus-kö som klienten ansluter till.

topic_name
str

Sökvägen till ett specifikt Service Bus-ämne som klienten ansluter till.

logging_enable
bool

Om nätverksspårningsloggar ska matas ut till loggarna. Standardvärdet är Falskt.

transport_type
TransportType

Den typ av transportprotokoll som ska användas för kommunikation med Service Bus-tjänsten. Standard är TransportType.Amqp.

http_proxy
Dict

HTTP-proxyinställningar. Detta måste vara en ordlista med följande nycklar: "proxy_hostname" (str-värde) och "proxy_port" (int-värde). Dessutom kan följande nycklar också finnas: "användarnamn", "lösenord".

user_agent
str

Om detta anges läggs detta till framför den inbyggda användaragentsträngen.

client_identifier
str

En strängbaserad identifierare som unikt identifierar klientinstansen. Service Bus associerar den med vissa felmeddelanden för enklare korrelation av fel. Om inget anges genereras ett unikt ID.

socket_timeout
float

Tiden i sekunder som den underliggande socketen på anslutningen ska vänta när du skickar och tar emot data innan tidsgränsen nås. Standardvärdet är 0.2 för TransportType.Amqp och 1 för TransportType.AmqpOverWebsocket. Om anslutningsfel uppstår på grund av skrivtidsutdelning kan ett större värde än standardvärdet behöva skickas in.

Variabler

fully_qualified_namespace
str

Det fullständigt kvalificerade värdnamnet för Service Bus-namnområdet. Namnområdesformatet är: .servicebus.windows.net.

entity_name
str

Namnet på entiteten som klienten ansluter till.

Metoder

cancel_scheduled_messages

Avbryt ett eller flera meddelanden som tidigare har schemalagts och som fortfarande väntar.

close

Stäng hanterarlänkarna (och anslutningen om hanteraren använder en separat anslutning).

Om hanteraren redan har stängts gör den här åtgärden ingenting.

create_message_batch

Skapa ett ServiceBusMessageBatch-objekt med den maximala storleken på allt innehåll som begränsas av max_size_in_bytes. Max_size får inte vara större än den maximala tillåtna meddelandestorleken som definieras av tjänsten.

schedule_messages

Skicka meddelande eller flera meddelanden som ska anges vid en viss tidpunkt. Returnerar en lista över sekvensnumren för de köade meddelandena.

send_messages

Skickar meddelande och block tills bekräftelsen tas emot eller åtgärden överskrider tidsgränsen.

Om en lista över meddelanden har angetts försöker skicka dem som en enda batch och utlöser en ValueError om de inte får plats i en enda batch.

cancel_scheduled_messages

Avbryt ett eller flera meddelanden som tidigare har schemalagts och som fortfarande väntar.

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

Parametrar

sequence_numbers
int eller list[int]
Obligatorisk

Sekvensnumren för de schemalagda meddelandena.

timeout
float

Den totala tidsgränsen för åtgärden i sekunder inklusive alla återförsök. Värdet måste vara större än 0 om det anges. Standardvärdet är Ingen, vilket innebär ingen tidsgräns.

Returtyp

Undantag

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

Exempel

Avbryter meddelanden som är schemalagda att skickas i framtiden


   with servicebus_sender:
       servicebus_sender.cancel_scheduled_messages(sequence_nums)

close

Stäng hanterarlänkarna (och anslutningen om hanteraren använder en separat anslutning).

Om hanteraren redan har stängts gör den här åtgärden ingenting.

close() -> None

Returtyp

Undantag

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

create_message_batch

Skapa ett ServiceBusMessageBatch-objekt med den maximala storleken på allt innehåll som begränsas av max_size_in_bytes. Max_size får inte vara större än den maximala tillåtna meddelandestorleken som definieras av tjänsten.

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

Parametrar

max_size_in_bytes
Optional[int]
standardvärde: None

Den maximala storleken på bytedata som ett ServiceBusMessageBatch-objekt kan innehålla. Som standard bestäms värdet av Service Bus-nivån.

Returer

Ett ServiceBusMessageBatch-objekt

Returtyp

Undantag

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

Exempel

Skapa ServiceBusMessageBatch-objekt inom begränsad storlek


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

schedule_messages

Skicka meddelande eller flera meddelanden som ska anges vid en viss tidpunkt. Returnerar en lista över sekvensnumren för de köade meddelandena.

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

Parametrar

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

Meddelandet eller listan över meddelanden som ska schemaläggas.

schedule_time_utc
datetime
Obligatorisk

Utc-datum och tid för att ställa in meddelandena.

timeout
float

Den totala tidsgränsen för åtgärden i sekunder inklusive alla återförsök. Värdet måste vara större än 0 om det anges. Standardvärdet är Ingen, vilket innebär ingen tidsgräns.

Returer

En lista över sekvensnumren för de köade meddelandena.

Returtyp

Undantag

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

Exempel

Schemalägga ett meddelande som ska skickas i framtiden


   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

Skickar meddelande och block tills bekräftelsen tas emot eller åtgärden överskrider tidsgränsen.

Om en lista över meddelanden har angetts försöker skicka dem som en enda batch och utlöser en ValueError om de inte får plats i en enda batch.

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

Parametrar

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

ServiceBus-meddelandet som ska skickas.

timeout
Optional[float]

Den totala tidsgränsen för åtgärden i sekunder inklusive alla återförsök. Värdet måste vara större än 0 om det anges. Standardvärdet är Ingen, vilket innebär ingen tidsgräns.

Returtyp

Undantag

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

Exempel

Skicka meddelande.


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

Attribut

client_identifier

Hämta ServiceBusSender-client_identifier som är associerad med avsändarinstansen.

Returtyp

str