ServiceBusSender Klasa

Klasa ServiceBusSender definiuje interfejs wysokiego poziomu do wysyłania komunikatów do kolejki lub tematu Azure Service Bus.

Użyj get_<queue/topic>_sender metody ~azure.servicebus.ServiceBusClient, aby utworzyć wystąpienie usługi ServiceBusSender.

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

Parametry

fully_qualified_namespace
str
Wymagane

W pełni kwalifikowana nazwa hosta dla przestrzeni nazw usługi Service Bus. Format przestrzeni nazw to: .servicebus.windows.net.

credential
TokenCredential lub AzureSasCredential lub AzureNamedKeyCredential
Wymagane

Obiekt poświadczeń używany do uwierzytelniania, który implementuje określony interfejs do pobierania tokenów. Akceptuje obiekty poświadczeń generowane przez bibliotekę azure-identity i obiekty, które implementują metodę *get_token(self, scopes) lub alternatywnie można podać obiekt AzureSasCredential.

queue_name
str

Ścieżka określonej kolejki usługi Service Bus, z którą nawiązuje połączenie klient.

topic_name
str

Ścieżka określonego tematu usługi Service Bus, z którą nawiązuje połączenie klient.

logging_enable
bool

Określa, czy dane wyjściowe dzienników śledzenia sieci do rejestratora. Wartość domyślna to False.

transport_type
TransportType

Typ protokołu transportowego, który będzie używany do komunikacji z usługą Service Bus. Wartość domyślna to TransportType.Amqp.

http_proxy
Dict

Ustawienia serwera proxy HTTP. Musi to być słownik z następującymi kluczami: "proxy_hostname" (wartość ciągu) i "proxy_port" (wartość int). Ponadto mogą istnieć następujące klucze: "nazwa użytkownika", "hasło".

user_agent
str

Jeśli zostanie określony, zostanie to dodane przed wbudowanym ciągiem agenta użytkownika.

client_identifier
str

Identyfikator oparty na ciągach umożliwiający unikatową identyfikację wystąpienia klienta. Usługa Service Bus skojarzy ją z niektórymi komunikatami o błędach, aby ułatwić korelację błędów. Jeśli nie zostanie określony, zostanie wygenerowany unikatowy identyfikator.

socket_timeout
float

Czas w sekundach oczekiwania bazowego gniazda na połączeniu podczas wysyłania i odbierania danych przed przekroczeniem limitu czasu. Wartość domyślna to 0,2 dla transportType.Amqp i 1 dla transportType.AmqpOverWebsocket. Jeśli występują błędy połączenia z powodu przekroczenia limitu czasu zapisu, może być konieczne przekazanie większej niż wartość domyślna.

Zmienne

fully_qualified_namespace
str

W pełni kwalifikowana nazwa hosta dla przestrzeni nazw usługi Service Bus. Format przestrzeni nazw to: .servicebus.windows.net.

entity_name
str

Nazwa jednostki, z którą nawiązuje połączenie klient.

Metody

cancel_scheduled_messages

Anuluj co najmniej jeden komunikat, który został wcześniej zaplanowany i nadal oczekuje.

close

Zamknij łącza procedury obsługi (i połączenie, jeśli program obsługi używa oddzielnego połączenia).

Jeśli procedura obsługi została już zamknięta, ta operacja nic nie zrobi.

create_message_batch

Utwórz obiekt ServiceBusMessageBatch z maksymalnym rozmiarem całej zawartości ograniczanej przez max_size_in_bytes. Max_size nie powinna być większa niż maksymalny dozwolony rozmiar komunikatu zdefiniowany przez usługę.

schedule_messages

Wyślij wiadomość lub wiele komunikatów do kolejkowania w określonym czasie. Zwraca listę numerów sekwencji w kolejce komunikatów.

send_messages

Wysyła komunikat i blokuje do momentu odebrania potwierdzenia lub upłynął limit czasu operacji.

Jeśli podano listę komunikatów, próbuje wysłać je jako pojedynczą partię, zgłaszając błąd ValueError , jeśli nie mogą mieścić się w jednej partii.

cancel_scheduled_messages

Anuluj co najmniej jeden komunikat, który został wcześniej zaplanowany i nadal oczekuje.

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

Parametry

sequence_numbers
int lub list[int]
Wymagane

Numery sekwencji zaplanowanych komunikatów.

timeout
float

Łączny limit czasu operacji w sekundach, łącznie ze wszystkimi ponownych próbami. Wartość musi być większa niż 0, jeśli zostanie określona. Wartość domyślna to None, co oznacza brak limitu czasu.

Typ zwracany

Wyjątki

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

Przykłady

Anulowanie wiadomości zaplanowanych do wysłania w przyszłości


   with servicebus_sender:
       servicebus_sender.cancel_scheduled_messages(sequence_nums)

close

Zamknij łącza procedury obsługi (i połączenie, jeśli program obsługi używa oddzielnego połączenia).

Jeśli procedura obsługi została już zamknięta, ta operacja nic nie zrobi.

close() -> None

Typ zwracany

Wyjątki

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

create_message_batch

Utwórz obiekt ServiceBusMessageBatch z maksymalnym rozmiarem całej zawartości ograniczanej przez max_size_in_bytes. Max_size nie powinna być większa niż maksymalny dozwolony rozmiar komunikatu zdefiniowany przez usługę.

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

Parametry

max_size_in_bytes
Optional[int]
wartość domyślna: None

Maksymalny rozmiar danych bajtów, które może przechowywać obiekt ServiceBusMessageBatch. Domyślnie wartość jest określana przez warstwę usługi Service Bus.

Zwraca

Obiekt ServiceBusMessageBatch

Typ zwracany

Wyjątki

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

Przykłady

Tworzenie obiektu ServiceBusMessageBatch w ograniczonym rozmiarze


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

schedule_messages

Wyślij wiadomość lub wiele komunikatów do kolejkowania w określonym czasie. Zwraca listę numerów sekwencji w kolejce komunikatów.

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]]]
Wymagane

Komunikat lub lista komunikatów do zaplanowana.

schedule_time_utc
datetime
Wymagane

Data i godzina utc w kolejce komunikatów.

timeout
float

Łączny limit czasu operacji w sekundach, łącznie ze wszystkimi ponownych próbami. Wartość musi być większa niż 0, jeśli zostanie określona. Wartość domyślna to None, co oznacza brak limitu czasu.

Zwraca

Lista numerów sekwencji w kolejce komunikatów.

Typ zwracany

Wyjątki

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

Przykłady

Planowanie wysyłania wiadomości w przyszłości


   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

Wysyła komunikat i blokuje do momentu odebrania potwierdzenia lub upłynął limit czasu operacji.

Jeśli podano listę komunikatów, próbuje wysłać je jako pojedynczą partię, zgłaszając błąd ValueError , jeśli nie mogą mieścić się w jednej partii.

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

Parametry

timeout
Optional[float]

Łączny limit czasu operacji w sekundach, łącznie ze wszystkimi ponownych próbami. Wartość musi być większa niż 0, jeśli zostanie określona. Wartość domyślna to None, co oznacza brak limitu czasu.

Typ zwracany

Wyjątki

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

Przykłady

Wyślij wiadomość.


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

Atrybuty

client_identifier

Pobierz client_identifier ServiceBusSender skojarzone z wystąpieniem nadawcy.

Typ zwracany

str