Udostępnij za pośrednictwem


QueueClient Klasa

Klient do interakcji z określoną kolejką.

Aby uzyskać więcej opcjonalnych konfiguracji, kliknij tutaj.

Dziedziczenie
azure.storage.queue._shared.base_client.StorageAccountHostsMixin
QueueClient
azure.storage.queue._encryption.StorageEncryptionMixin
QueueClient

Konstruktor

QueueClient(account_url: str, queue_name: str, credential: str | Dict[str, str] | AzureNamedKeyCredential | AzureSasCredential | TokenCredential | None = None, **kwargs: Any)

Parametry

account_url
str
Wymagane

Adres URL konta magazynu. Aby utworzyć klienta z pełnym identyfikatorem URI kolejki, użyj from_queue_url klasymethod.

queue_name
str
Wymagane

Nazwa kolejki.

credential
wartość domyślna: None

Poświadczenia, za pomocą których należy się uwierzytelniać. Jest to opcjonalne, jeśli adres URL konta ma już token SAS. Wartość może być ciągiem tokenu SYGNATURy dostępu współdzielonego, wystąpieniem klasy AzureSasCredential lub AzureNamedKeyCredential z pliku azure.core.credentials, kluczem dostępu współużytkowanego konta lub wystąpieniem klasy TokenCredentials z pliku azure.identity. Jeśli identyfikator URI zasobu zawiera już token SAS, zostanie on zignorowany na rzecz jawnego poświadczenia

  • z wyjątkiem przypadku elementu AzureSasCredential, gdzie powodujące konflikt tokeny SYGNATURy dostępu współdzielonego spowodują wywołanie błędu ValueError. Jeśli używasz wystąpienia obiektu AzureNamedKeyCredential, "name" powinien być nazwą konta magazynu, a "klucz" powinien być kluczem konta magazynu.
api_version
str

Wersja interfejsu API usługi Storage do użycia dla żądań. Wartość domyślna to najnowsza wersja usługi zgodna z bieżącym zestawem SDK. Ustawienie starszej wersji może spowodować zmniejszenie zgodności funkcji.

secondary_hostname
str

Nazwa hosta pomocniczego punktu końcowego.

message_encode_policy

Zasady kodowania do użycia w komunikatach wychodzących. Ustawieniem domyślnym nie jest kodowanie komunikatów. Inne opcje to TextBase64EncodePolicy, BinaryBase64EncodePolicy lub Brak.

message_decode_policy

Zasady dekodowania do użycia w komunikatach przychodzących. Wartość domyślna to nie dekodowanie komunikatów. Inne opcje to TextBase64DecodePolicy, BinaryBase64DecodePolicy lub Brak.

audience
str

Odbiorcy, których należy użyć podczas żądania tokenów na potrzeby uwierzytelniania usługi Azure Active Directory. Ma wpływ tylko wtedy, gdy poświadczenie jest typu TokenCredential. Wartość może być https://storage.azure.com/ (domyślna) lub https://.queue.core.windows.net.

Przykłady

Utwórz klienta kolejki przy użyciu adresu URL i poświadczeń.


   token_auth_queue = QueueClient.from_queue_url(
       queue_url=queue.url,
       credential=sas_token
   )

Metody

clear_messages

Usuwa wszystkie komunikaty z określonej kolejki.

close

Ta metoda polega na zamknięciu gniazd otwartych przez klienta. Nie trzeba jej używać w przypadku używania z menedżerem kontekstu.

create_queue

Tworzy nową kolejkę na koncie magazynu.

Jeśli kolejka o tej samej nazwie już istnieje, operacja kończy się niepowodzeniem z błędem ResourceExistsError.

delete_message

Usuwa określony komunikat.

Zwykle po pobraniu komunikatu z operacją odbierania komunikatów klient powinien przetworzyć i usunąć komunikat. Aby usunąć komunikat, musisz mieć sam obiekt komunikatu lub dwa elementy danych: id i pop_receipt. Identyfikator jest zwracany z poprzedniej operacji receive_messages. Pop_receipt jest zwracana z najnowszej receive_messages operacji lub update_message . Aby operacja delete_message powiodła się, pop_receipt określona na żądaniu musi być zgodna z pop_receipt zwróconą z receive_messages operacji lub update_message .

delete_queue

Usuwa określoną kolejkę i wszystkie komunikaty, które zawiera.

Po pomyślnym usunięciu kolejki zostanie ona natychmiast oznaczona do usunięcia i nie będzie już dostępna dla klientów. Kolejka zostanie później usunięta z usługi Kolejki podczas odzyskiwania pamięci.

Pamiętaj, że usunięcie kolejki może potrwać co najmniej 40 sekund. Jeśli operacja zostanie podjęta względem kolejki podczas jej usunięcia, <xref:azure.storage.queue.HttpResponseError> zostanie zgłoszony element .

from_connection_string

Utwórz element QueueClient na podstawie parametrów połączenia.

from_queue_url

Klient do interakcji z określoną kolejką.

get_queue_access_policy

Zwraca szczegółowe informacje o wszystkich przechowywanych zasadach dostępu określonych w kolejce, które mogą być używane z sygnaturami dostępu współdzielonego.

get_queue_properties

Zwraca wszystkie metadane zdefiniowane przez użytkownika dla określonej kolejki.

Zwrócone dane nie zawierają listy komunikatów kolejki.

peek_messages

Pobiera co najmniej jeden komunikat z przodu kolejki, ale nie zmienia widoczności komunikatu.

Można pobrać tylko komunikaty widoczne. Gdy komunikat zostanie pobrany po raz pierwszy z wywołaniem metody receive_messages, jej właściwość dequeue_count jest ustawiona na 1. Jeśli nie zostanie usunięty, a następnie zostanie pobrany ponownie, właściwość dequeue_count zostanie zwiększona. Klient może użyć tej wartości, aby określić, ile razy został pobrany komunikat. Należy pamiętać, że wywołanie peek_messages nie zwiększa wartości dequeue_count, ale zwraca tę wartość dla klienta do odczytu.

Jeśli pole key-encryption-key lub resolver jest ustawione na obiekcie usługi lokalnej, komunikaty zostaną odszyfrowane przed zwróceniem.

receive_message

Usuwa jeden komunikat z przodu kolejki.

Po pobraniu komunikatu z kolejki odpowiedź zawiera zawartość komunikatu i wartość pop_receipt, która jest wymagana do usunięcia komunikatu. Komunikat nie jest automatycznie usuwany z kolejki, ale po jego pobraniu nie jest widoczny dla innych klientów przez interwał czasu określony przez parametr visibility_timeout.

Jeśli pole key-encryption-key lub resolver jest ustawione na obiekcie usługi lokalnej, komunikat zostanie odszyfrowany przed zwróceniem.

receive_messages

Usuwa jeden lub więcej komunikatów z przodu kolejki.

Po pobraniu komunikatu z kolejki odpowiedź zawiera zawartość komunikatu i wartość pop_receipt, która jest wymagana do usunięcia komunikatu. Komunikat nie jest automatycznie usuwany z kolejki, ale po jego pobraniu nie jest widoczny dla innych klientów przez interwał czasu określony przez parametr visibility_timeout. Iterator będzie stale pobierać komunikaty, dopóki kolejka nie zostanie pusta lub max_messages zostanie osiągnięta (jeśli zostanie ustawiona max_messages).

Jeśli pole key-encryption-key lub resolver jest ustawione na obiekcie usługi lokalnej, komunikaty zostaną odszyfrowane przed zwróceniem.

send_message

Dodaje nowy komunikat z tyłu kolejki komunikatów.

Limit czasu widoczności określa czas niewidoczny dla komunikatu. Po wygaśnięciu limitu czasu zostanie wyświetlony komunikat. Jeśli nie określono limitu czasu widoczności, zostanie użyta wartość domyślna 0.

Czas wygaśnięcia komunikatu określa, jak długo komunikat pozostanie w kolejce. Komunikat zostanie usunięty z kolejki po wygaśnięciu okresu wygaśnięcia.

Jeśli pole key-encryption-key jest ustawione na obiekcie usługi lokalnej, ta metoda będzie szyfrować zawartość przed przekazaniem.

set_queue_access_policy

Ustawia przechowywane zasady dostępu dla kolejki, które mogą być używane z sygnaturami dostępu współdzielonego.

Po ustawieniu uprawnień dla kolejki istniejące uprawnienia zostaną zastąpione. Aby zaktualizować uprawnienia kolejki, wywołaj metodę get_queue_access_policy pobierania wszystkich zasad dostępu skojarzonych z kolejką, zmodyfikuj zasady dostępu, które chcesz zmienić, a następnie wywołaj tę funkcję z pełnym zestawem danych w celu przeprowadzenia aktualizacji.

Po ustanowieniu przechowywanych zasad dostępu w kolejce zastosowanie może potrwać do 30 sekund. W tym interwale sygnatura dostępu współdzielonego skojarzona z zapisanymi zasadami dostępu będzie zgłaszana <xref:azure.storage.queue.HttpResponseError> do momentu aktywowania zasad dostępu.

set_queue_metadata

Ustawia metadane zdefiniowane przez użytkownika w określonej kolejce.

Metadane są skojarzone z kolejką jako pary name-value.

update_message

Aktualizacje limit czasu widoczności komunikatu. Możesz również użyć tej operacji, aby zaktualizować zawartość wiadomości.

Ta operacja może służyć do ciągłego rozszerzania widoczności komunikatu w kolejce. Ta funkcja może być przydatna, jeśli chcesz, aby rola procesu roboczego "dzierżawiła" komunikat w kolejce. Jeśli na przykład rola procesu roboczego wywołuje receive_messages i rozpoznaje, że potrzebuje więcej czasu na przetworzenie komunikatu, może stale rozszerzać widoczność komunikatu do momentu jego przetworzenia. Jeśli rola procesu roboczego zakończy się niepowodzeniem podczas przetwarzania, w końcu komunikat stanie się widoczny ponownie, a inna rola procesu roboczego może ją przetworzyć.

Jeśli pole key-encryption-key jest ustawione w obiekcie usługi lokalnej, ta metoda zaszyfruje zawartość przed przekazaniem.

clear_messages

Usuwa wszystkie komunikaty z określonej kolejki.

clear_messages(**kwargs: Any) -> None

Parametry

timeout
int

Ustawia limit czasu po stronie serwera dla operacji w sekundach. Aby uzyskać więcej informacji, zobacz https://learn.microsoft.com/en-us/rest/api/storageservices/setting-timeouts-for-queue-service-operations. Ta wartość nie jest śledzona ani weryfikowana na kliencie. Aby skonfigurować limity czasu sieci po stronie klienta, zobacz tutaj.

Przykłady

Czyści wszystkie komunikaty.


   queue.clear_messages()

close

Ta metoda polega na zamknięciu gniazd otwartych przez klienta. Nie trzeba jej używać w przypadku używania z menedżerem kontekstu.

close()

create_queue

Tworzy nową kolejkę na koncie magazynu.

Jeśli kolejka o tej samej nazwie już istnieje, operacja kończy się niepowodzeniem z błędem ResourceExistsError.

create_queue(*, metadata: Dict[str, str] | None = None, **kwargs: Any) -> None

Parametry

metadata
Dict[str,str]

Dykt zawierający pary name-value do skojarzenia z kolejką jako metadane. Należy pamiętać, że nazwy metadanych zachowują wielkość liter, z którą zostały utworzone, ale nie są uwzględniane wielkości liter podczas ustawiania lub odczytywania.

timeout
int

Ustawia limit czasu po stronie serwera dla operacji w sekundach. Aby uzyskać więcej informacji, zobacz https://learn.microsoft.com/en-us/rest/api/storageservices/setting-timeouts-for-queue-service-operations. Ta wartość nie jest śledzona ani weryfikowana na kliencie. Aby skonfigurować limity czasu sieci po stronie klienta, zobacz tutaj.

Zwraca

Brak lub wynik cls(response)

Typ zwracany

Wyjątki

StorageErrorException

Przykłady

Tworzenie kolejki.


   queue.create_queue()

delete_message

Usuwa określony komunikat.

Zwykle po pobraniu komunikatu z operacją odbierania komunikatów klient powinien przetworzyć i usunąć komunikat. Aby usunąć komunikat, musisz mieć sam obiekt komunikatu lub dwa elementy danych: id i pop_receipt. Identyfikator jest zwracany z poprzedniej operacji receive_messages. Pop_receipt jest zwracana z najnowszej receive_messages operacji lub update_message . Aby operacja delete_message powiodła się, pop_receipt określona na żądaniu musi być zgodna z pop_receipt zwróconą z receive_messages operacji lub update_message .

delete_message(message: str | QueueMessage, pop_receipt: str | None = None, **kwargs: Any) -> None

Parametry

message
str lub QueueMessage
Wymagane

Obiekt lub identyfikator komunikatu identyfikujący komunikat do usunięcia.

pop_receipt
str
Wymagane

Prawidłowa wartość potwierdzenia pop zwrócona z wcześniejszego wywołania metody receive_messages lub update_message.

timeout
int

Ustawia limit czasu po stronie serwera dla operacji w sekundach. Aby uzyskać więcej informacji, zobacz https://learn.microsoft.com/en-us/rest/api/storageservices/setting-timeouts-for-queue-service-operations. Ta wartość nie jest śledzona ani weryfikowana na kliencie. Aby skonfigurować limity czasu sieci po stronie klienta, zobacz tutaj.

Przykłady

Usuń wiadomość.


   # Get the message at the front of the queue
   msg = next(queue.receive_messages())

   # Delete the specified message
   queue.delete_message(msg)

delete_queue

Usuwa określoną kolejkę i wszystkie komunikaty, które zawiera.

Po pomyślnym usunięciu kolejki zostanie ona natychmiast oznaczona do usunięcia i nie będzie już dostępna dla klientów. Kolejka zostanie później usunięta z usługi Kolejki podczas odzyskiwania pamięci.

Pamiętaj, że usunięcie kolejki może potrwać co najmniej 40 sekund. Jeśli operacja zostanie podjęta względem kolejki podczas jej usunięcia, <xref:azure.storage.queue.HttpResponseError> zostanie zgłoszony element .

delete_queue(**kwargs: Any) -> None

Parametry

timeout
int

Ustawia limit czasu po stronie serwera dla operacji w sekundach. Aby uzyskać więcej informacji, zobacz https://learn.microsoft.com/en-us/rest/api/storageservices/setting-timeouts-for-queue-service-operations. Ta wartość nie jest śledzona ani weryfikowana na kliencie. Aby skonfigurować limity czasu sieci po stronie klienta, zobacz tutaj.

Typ zwracany

Przykłady

Usuwanie kolejki.


   queue.delete_queue()

from_connection_string

Utwórz element QueueClient na podstawie parametrów połączenia.

from_connection_string(conn_str: str, queue_name: str, credential: str | Dict[str, str] | AzureNamedKeyCredential | AzureSasCredential | TokenCredential | None = None, **kwargs: Any) -> Self

Parametry

conn_str
str
Wymagane

Parametry połączenia do konta usługi Azure Storage.

queue_name
str
Wymagane

Nazwa kolejki.

credential
wartość domyślna: None

Poświadczenia, za pomocą których należy się uwierzytelniać. Jest to opcjonalne, jeśli adres URL konta ma już token SAS lub parametry połączenia ma już wartości klucza dostępu współdzielonego. Wartość może być ciągiem tokenu SYGNATURy dostępu współdzielonego, wystąpieniem klasy AzureSasCredential lub AzureNamedKeyCredential z pliku azure.core.credentials, kluczem dostępu współużytkowanego konta lub wystąpieniem klasy TokenCredentials z pliku azure.identity. Poświadczenia podane w tym miejscu będą miały pierwszeństwo przed tymi w parametry połączenia. Jeśli używasz wystąpienia obiektu AzureNamedKeyCredential, "name" powinien być nazwą konta magazynu, a "klucz" powinien być kluczem konta magazynu.

audience
str

Odbiorcy, których należy użyć podczas żądania tokenów na potrzeby uwierzytelniania usługi Azure Active Directory. Ma wpływ tylko wtedy, gdy poświadczenie jest typu TokenCredential. Wartość może być https://storage.azure.com/ (domyślna) lub https://.queue.core.windows.net.

Zwraca

Klient kolejki.

Typ zwracany

Przykłady

Utwórz klienta kolejki na podstawie parametry połączenia.


   from azure.storage.queue import QueueClient
   queue = QueueClient.from_connection_string(self.connection_string, "myqueue1")

from_queue_url

Klient do interakcji z określoną kolejką.

from_queue_url(queue_url: str, credential: str | Dict[str, str] | AzureNamedKeyCredential | AzureSasCredential | TokenCredential | None = None, **kwargs: Any) -> Self

Parametry

queue_url
str
Wymagane

Pełny identyfikator URI do kolejki, w tym token SAS, jeśli jest używany.

credential
wartość domyślna: None

Poświadczenia, za pomocą których należy się uwierzytelniać. Jest to opcjonalne, jeśli adres URL konta ma już token SAS. Wartość może być ciągiem tokenu sygnatury dostępu współdzielonego, wystąpieniem klasy AzureSasCredential lub AzureNamedKeyCredential z elementu azure.core.credentials, kluczem dostępu współużytkowanego konta lub wystąpieniem klasy TokenCredentials z klasy azure.identity. Jeśli identyfikator URI zasobu zawiera już token sygnatury dostępu współdzielonego, zostanie on zignorowany na rzecz jawnego poświadczenia

  • z wyjątkiem przypadków usługi AzureSasCredential, gdzie powodujące konflikty tokeny SYGNATURy dostępu współdzielonego spowodują podniesienie wartościError. Jeśli używasz wystąpienia elementu AzureNamedKeyCredential, wartość "name" powinna być nazwą konta magazynu, a "klucz" powinien być kluczem konta magazynu.
audience
str

Odbiorcy do użycia podczas żądania tokenów na potrzeby uwierzytelniania usługi Azure Active Directory. Ma wpływ tylko wtedy, gdy poświadczenie ma typ TokenCredential. Wartość może być https://storage.azure.com/ (domyślna) lub https://.queue.core.windows.net.

Zwraca

Klient kolejki.

Typ zwracany

get_queue_access_policy

Zwraca szczegółowe informacje o wszystkich przechowywanych zasadach dostępu określonych w kolejce, które mogą być używane z sygnaturami dostępu współdzielonego.

get_queue_access_policy(**kwargs: Any) -> Dict[str, AccessPolicy]

Parametry

timeout
int

Ustawia limit czasu po stronie serwera dla operacji w sekundach. Aby uzyskać więcej informacji, zobacz https://learn.microsoft.com/en-us/rest/api/storageservices/setting-timeouts-for-queue-service-operations. Ta wartość nie jest śledzona ani weryfikowana na kliencie. Aby skonfigurować limity czasu sieci po stronie klienta, zobacz tutaj.

Zwraca

Słownik zasad dostępu skojarzony z kolejką.

Typ zwracany

get_queue_properties

Zwraca wszystkie metadane zdefiniowane przez użytkownika dla określonej kolejki.

Zwrócone dane nie zawierają listy komunikatów kolejki.

get_queue_properties(**kwargs: Any) -> QueueProperties

Parametry

timeout
int

Parametr limitu czasu jest wyrażony w sekundach.

Zwraca

Metadane zdefiniowane przez użytkownika dla kolejki.

Typ zwracany

Przykłady

Pobierz właściwości w kolejce.


   properties = queue.get_queue_properties().metadata

peek_messages

Pobiera co najmniej jeden komunikat z przodu kolejki, ale nie zmienia widoczności komunikatu.

Można pobrać tylko komunikaty widoczne. Gdy komunikat zostanie pobrany po raz pierwszy z wywołaniem metody receive_messages, jej właściwość dequeue_count jest ustawiona na 1. Jeśli nie zostanie usunięty, a następnie zostanie pobrany ponownie, właściwość dequeue_count zostanie zwiększona. Klient może użyć tej wartości, aby określić, ile razy został pobrany komunikat. Należy pamiętać, że wywołanie peek_messages nie zwiększa wartości dequeue_count, ale zwraca tę wartość dla klienta do odczytu.

Jeśli pole key-encryption-key lub resolver jest ustawione na obiekcie usługi lokalnej, komunikaty zostaną odszyfrowane przed zwróceniem.

peek_messages(max_messages: int | None = None, **kwargs: Any) -> List[QueueMessage]

Parametry

max_messages
int
Wymagane

Wartość całkowita niezerowa określająca liczbę komunikatów do wglądu z kolejki, maksymalnie 32. Domyślnie pojedynczy komunikat jest podglądany z kolejki za pomocą tej operacji.

timeout
int

Ustawia limit czasu po stronie serwera dla operacji w sekundach. Aby uzyskać więcej informacji, zobacz https://learn.microsoft.com/en-us/rest/api/storageservices/setting-timeouts-for-queue-service-operations. Ta wartość nie jest śledzona ani weryfikowana na kliencie. Aby skonfigurować limity czasu sieci po stronie klienta, zobacz tutaj.

Zwraca

Lista QueueMessage obiektów. Należy pamiętać, że next_visible_on i pop_receipt nie zostaną wypełnione, ponieważ podgląd nie spowoduje wyskakującego komunikatu i może pobrać tylko widoczne komunikaty.

Typ zwracany

Przykłady

Podgląd komunikatów.


   # Peek at one message at the front of the queue
   msg = queue.peek_messages()

   # Peek at the last 5 messages
   messages = queue.peek_messages(max_messages=5)

   # Print the last 5 messages
   for message in messages:
       print(message.content)

receive_message

Usuwa jeden komunikat z przodu kolejki.

Po pobraniu komunikatu z kolejki odpowiedź zawiera zawartość komunikatu i wartość pop_receipt, która jest wymagana do usunięcia komunikatu. Komunikat nie jest automatycznie usuwany z kolejki, ale po jego pobraniu nie jest widoczny dla innych klientów przez interwał czasu określony przez parametr visibility_timeout.

Jeśli pole key-encryption-key lub resolver jest ustawione na obiekcie usługi lokalnej, komunikat zostanie odszyfrowany przed zwróceniem.

receive_message(*, visibility_timeout: int | None = None, **kwargs: Any) -> QueueMessage | None

Parametry

visibility_timeout
int

Jeśli nie zostanie określona, wartość domyślna to 30. Określa nową wartość limitu czasu widoczności w sekundach względem czasu serwera. Wartość musi być większa lub równa 1 i nie może być większa niż 7 dni. Nie można ustawić limitu czasu widoczności komunikatu na wartość później niż czas wygaśnięcia. visibility_timeout należy ustawić wartość mniejszą niż wartość czasu wygaśnięcia.

timeout
int

Ustawia limit czasu po stronie serwera dla operacji w sekundach. Aby uzyskać więcej informacji, zobacz https://learn.microsoft.com/en-us/rest/api/storageservices/setting-timeouts-for-queue-service-operations. Ta wartość nie jest śledzona ani weryfikowana na kliencie. Aby skonfigurować limity czasu sieci po stronie klienta, zobacz tutaj.

Zwraca

Zwraca komunikat z kolejki lub brak, jeśli kolejka jest pusta.

Typ zwracany

Przykłady

Odbierz jeden komunikat z kolejki.


   # Pop two messages from the front of the queue
   message1 = queue.receive_message()
   message2 = queue.receive_message()
   # We should see message 3 if we peek
   message3 = queue.peek_messages()[0]

   if not message1 or not message2 or not message3:
       raise ValueError("One of the messages are None.")

   print(message1.content)
   print(message2.content)
   print(message3.content)

receive_messages

Usuwa jeden lub więcej komunikatów z przodu kolejki.

Po pobraniu komunikatu z kolejki odpowiedź zawiera zawartość komunikatu i wartość pop_receipt, która jest wymagana do usunięcia komunikatu. Komunikat nie jest automatycznie usuwany z kolejki, ale po jego pobraniu nie jest widoczny dla innych klientów przez interwał czasu określony przez parametr visibility_timeout. Iterator będzie stale pobierać komunikaty, dopóki kolejka nie zostanie pusta lub max_messages zostanie osiągnięta (jeśli zostanie ustawiona max_messages).

Jeśli pole key-encryption-key lub resolver jest ustawione na obiekcie usługi lokalnej, komunikaty zostaną odszyfrowane przed zwróceniem.

receive_messages(*, messages_per_page: int | None = None, visibility_timeout: int | None = None, max_messages: int | None = None, **kwargs: Any) -> ItemPaged[QueueMessage]

Parametry

visibility_timeout
int

Jeśli nie zostanie określona, wartość domyślna to 30. Określa nową wartość limitu czasu widoczności w sekundach względem czasu serwera. Wartość musi być większa lub równa 1 i nie może być większa niż 7 dni. Nie można ustawić limitu czasu widoczności komunikatu na wartość później niż czas wygaśnięcia. visibility_timeout należy ustawić wartość mniejszą niż wartość czasu wygaśnięcia.

max_messages
int

Liczba całkowita określająca maksymalną liczbę komunikatów do pobrania z kolejki.

timeout
int

Ustawia limit czasu po stronie serwera dla operacji w sekundach. Aby uzyskać więcej informacji, zobacz https://learn.microsoft.com/en-us/rest/api/storageservices/setting-timeouts-for-queue-service-operations. Ta wartość nie jest śledzona ani weryfikowana na kliencie. Aby skonfigurować limity czasu sieci po stronie klienta, zobacz tutaj.

Zwraca

Zwraca iterator komunikatów obiektów komunikatów przypominających dykt.

Typ zwracany

Przykłady

Odbieranie komunikatów z kolejki.


   # Receive messages one-by-one
   messages = queue.receive_messages()
   for msg in messages:
       print(msg.content)

   # Receive messages by batch
   messages = queue.receive_messages(messages_per_page=5)
   for msg_batch in messages.by_page():
       for msg in msg_batch:
           print(msg.content)
           queue.delete_message(msg)

send_message

Dodaje nowy komunikat z tyłu kolejki komunikatów.

Limit czasu widoczności określa czas niewidoczny dla komunikatu. Po wygaśnięciu limitu czasu zostanie wyświetlony komunikat. Jeśli nie określono limitu czasu widoczności, zostanie użyta wartość domyślna 0.

Czas wygaśnięcia komunikatu określa, jak długo komunikat pozostanie w kolejce. Komunikat zostanie usunięty z kolejki po wygaśnięciu okresu wygaśnięcia.

Jeśli pole key-encryption-key jest ustawione na obiekcie usługi lokalnej, ta metoda będzie szyfrować zawartość przed przekazaniem.

send_message(content: object | None, *, visibility_timeout: int | None = None, time_to_live: int | None = None, **kwargs: Any) -> QueueMessage

Parametry

content
Optional[object]
Wymagane

Zawartość wiadomości. Dozwolony typ jest określany przez encode_function ustawiony w usłudze. Wartość domyślna to str. Zakodowany komunikat może mieć rozmiar do 64 KB.

visibility_timeout
int

Jeśli nie zostanie określona, wartość domyślna to 0. Określa nową wartość limitu czasu widoczności w sekundach względem czasu serwera. Wartość musi być większa lub równa 0 i nie może być większa niż 7 dni. Nie można ustawić limitu czasu widoczności komunikatu na wartość później niż czas wygaśnięcia. visibility_timeout należy ustawić wartość mniejszą niż wartość czasu wygaśnięcia.

time_to_live
int

Określa interwał czasu wygaśnięcia komunikatu w sekundach. Czas wygaśnięcia może być dowolną liczbą dodatnią lub -1 dla nieskończoności. Jeśli ten parametr zostanie pominięty, domyślny czas wygaśnięcia wynosi 7 dni.

timeout
int

Ustawia limit czasu po stronie serwera dla operacji w sekundach. Aby uzyskać więcej informacji, zobacz https://learn.microsoft.com/en-us/rest/api/storageservices/setting-timeouts-for-queue-service-operations. Ta wartość nie jest śledzona ani weryfikowana na kliencie. Aby skonfigurować limity czasu sieci po stronie klienta, zobacz tutaj.

Zwraca

Obiekt QueueMessage. Ten obiekt jest również wypełniany zawartością, chociaż nie jest zwracany z usługi.

Typ zwracany

Przykłady

Wysyłanie komunikatów.


   queue.send_message("message1")
   queue.send_message("message2", visibility_timeout=30)  # wait 30s before becoming visible
   queue.send_message("message3")
   queue.send_message("message4")
   queue.send_message("message5")

set_queue_access_policy

Ustawia przechowywane zasady dostępu dla kolejki, które mogą być używane z sygnaturami dostępu współdzielonego.

Po ustawieniu uprawnień dla kolejki istniejące uprawnienia zostaną zastąpione. Aby zaktualizować uprawnienia kolejki, wywołaj metodę get_queue_access_policy pobierania wszystkich zasad dostępu skojarzonych z kolejką, zmodyfikuj zasady dostępu, które chcesz zmienić, a następnie wywołaj tę funkcję z pełnym zestawem danych w celu przeprowadzenia aktualizacji.

Po ustanowieniu przechowywanych zasad dostępu w kolejce zastosowanie może potrwać do 30 sekund. W tym interwale sygnatura dostępu współdzielonego skojarzona z zapisanymi zasadami dostępu będzie zgłaszana <xref:azure.storage.queue.HttpResponseError> do momentu aktywowania zasad dostępu.

set_queue_access_policy(signed_identifiers: Dict[str, AccessPolicy], **kwargs: Any) -> None

Parametry

signed_identifiers
Dict[str, AccessPolicy]
Wymagane

SignedIdentifier zasady dostępu do skojarzenia z kolejką. Może to zawierać maksymalnie 5 elementów. Pusty dykt wyczyści zasady dostępu ustawione w usłudze.

timeout
int

Ustawia limit czasu po stronie serwera dla operacji w sekundach. Aby uzyskać więcej informacji, zobacz https://learn.microsoft.com/en-us/rest/api/storageservices/setting-timeouts-for-queue-service-operations. Ta wartość nie jest śledzona ani weryfikowana na kliencie. Aby skonfigurować limity czasu sieci po stronie klienta, zobacz tutaj.

Przykłady

Ustaw zasady dostępu w kolejce.


   # Create an access policy
   from azure.storage.queue import AccessPolicy, QueueSasPermissions
   access_policy = AccessPolicy()
   access_policy.start = datetime.utcnow() - timedelta(hours=1)
   access_policy.expiry = datetime.utcnow() + timedelta(hours=1)
   access_policy.permission = QueueSasPermissions(read=True)
   identifiers = {'my-access-policy-id': access_policy}

   # Set the access policy
   queue.set_queue_access_policy(identifiers)

set_queue_metadata

Ustawia metadane zdefiniowane przez użytkownika w określonej kolejce.

Metadane są skojarzone z kolejką jako pary name-value.

set_queue_metadata(metadata: Dict[str, str] | None = None, **kwargs: Any) -> Dict[str, Any]

Parametry

metadata
Optional[Dict[str, str]]
Wymagane

Dykt zawierający pary name-value do skojarzenia z kolejką jako metadane.

timeout
int

Ustawia limit czasu po stronie serwera dla operacji w sekundach. Aby uzyskać więcej informacji, zobacz https://learn.microsoft.com/en-us/rest/api/storageservices/setting-timeouts-for-queue-service-operations. Ta wartość nie jest śledzona ani weryfikowana na kliencie. Aby skonfigurować limity czasu sieci po stronie klienta, zobacz tutaj.

Zwraca

Słownik nagłówków odpowiedzi.

Typ zwracany

Przykłady

Ustaw metadane w kolejce.


   metadata = {'foo': 'val1', 'bar': 'val2', 'baz': 'val3'}
   queue.set_queue_metadata(metadata=metadata)

update_message

Aktualizacje limit czasu widoczności komunikatu. Możesz również użyć tej operacji, aby zaktualizować zawartość wiadomości.

Ta operacja może służyć do ciągłego rozszerzania widoczności komunikatu w kolejce. Ta funkcja może być przydatna, jeśli chcesz, aby rola procesu roboczego "dzierżawiła" komunikat w kolejce. Jeśli na przykład rola procesu roboczego wywołuje receive_messages i rozpoznaje, że potrzebuje więcej czasu na przetworzenie komunikatu, może stale rozszerzać widoczność komunikatu do momentu jego przetworzenia. Jeśli rola procesu roboczego zakończy się niepowodzeniem podczas przetwarzania, w końcu komunikat stanie się widoczny ponownie, a inna rola procesu roboczego może ją przetworzyć.

Jeśli pole key-encryption-key jest ustawione w obiekcie usługi lokalnej, ta metoda zaszyfruje zawartość przed przekazaniem.

update_message(message: str | QueueMessage, pop_receipt: str | None = None, content: object | None = None, *, visibility_timeout: int | None = None, **kwargs: Any) -> QueueMessage

Parametry

message
str lub QueueMessage
Wymagane

Obiekt lub identyfikator komunikatu identyfikujący komunikat do zaktualizowania.

pop_receipt
str
Wymagane

Prawidłowa wartość potwierdzenia pop zwrócona z wcześniejszego wywołania operacji receive_messages lub update_message .

content
Optional[object]
Wymagane

Zawartość wiadomości. Dozwolony typ jest określany przez encode_function ustawioną w usłudze. Wartość domyślna to str.

visibility_timeout
int

Określa nową wartość limitu czasu widoczności w sekundach względem czasu serwera. Nowa wartość musi być większa lub równa 0 i nie może być większa niż 7 dni. Limit czasu widoczności komunikatu nie może być ustawiony na wartość późniejszą niż czas wygaśnięcia. Komunikat można zaktualizować do momentu jego usunięcia lub wygaśnięcia. Obiekt komunikatu lub identyfikator komunikatu identyfikujący komunikat do zaktualizowania.

timeout
int

Ustawia limit czasu po stronie serwera dla operacji w sekundach. Aby uzyskać więcej informacji, zobacz https://learn.microsoft.com/en-us/rest/api/storageservices/setting-timeouts-for-queue-service-operations. Ta wartość nie jest śledzona ani weryfikowana na kliencie. Aby skonfigurować limity czasu sieci po stronie klienta, zobacz tutaj.

Zwraca

Obiekt QueueMessage. Dla wygody ten obiekt jest również wypełniany zawartością, chociaż nie jest zwracany przez usługę.

Typ zwracany

Przykłady

Aktualizowanie komunikatu.


   # Send a message
   queue.send_message("update me")

   # Receive the message
   messages = queue.receive_messages()

   # Update the message
   list_result = next(messages)
   message = queue.update_message(
       list_result.id,
       pop_receipt=list_result.pop_receipt,
       visibility_timeout=0,
       content="updated")

Atrybuty

api_version

Wersja interfejsu API usługi Storage używana na potrzeby żądań.

Typ zwracany

str

location_mode

Tryb lokalizacji, z którego obecnie korzysta klient.

Domyślnie będzie to "podstawowe". Opcje obejmują "podstawowe" i "pomocnicze".

Typ zwracany

str

primary_endpoint

Pełny podstawowy adres URL punktu końcowego.

Typ zwracany

str

primary_hostname

Nazwa hosta podstawowego punktu końcowego.

Typ zwracany

str

secondary_endpoint

Pełny adres URL pomocniczego punktu końcowego, jeśli został skonfigurowany.

Jeśli parametr ValueError nie będzie dostępny, zostanie zgłoszony błąd. Aby jawnie określić pomocniczą nazwę hosta, użyj opcjonalnego argumentu słowa kluczowego secondary_hostname podczas tworzenia wystąpienia.

Typ zwracany

str

Wyjątki

secondary_hostname

Nazwa hosta pomocniczego punktu końcowego.

Jeśli ta opcja nie będzie dostępna, będzie to brak. Aby jawnie określić pomocniczą nazwę hosta, użyj opcjonalnego argumentu słowa kluczowego secondary_hostname podczas tworzenia wystąpienia.

Typ zwracany

url

Pełny adres URL punktu końcowego do tej jednostki, w tym token SAS, jeśli jest używany.

Może to być podstawowy punkt końcowy lub pomocniczy punkt końcowy w zależności od bieżącego location_mode. :returns: pełny adres URL punktu końcowego do tej jednostki, w tym token SAS, jeśli jest używany. :rtype: str