Udostępnij za pośrednictwem


QueueClient Klasa

Klient do interakcji z określoną kolejką.

Dziedziczenie
azure.storage.queue._shared.base_client_async.AsyncStorageAccountHostsMixin
QueueClient
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 | AsyncTokenCredential | None = None, **kwargs: Any)

Parametry

account_url
str
Wymagane

Adres URL konta magazynu. Aby utworzyć klienta z pełnym identyfikatorem URI w kolejce, 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 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.
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 <xref:azure.storage.queue.aio.TextBase64EncodePolicy>, <xref:azure.storage.queue.aio.BinaryBase64EncodePolicy> lub Brak.

message_decode_policy

Zasady dekodowania do użycia w komunikatach przychodzących. Wartością domyślną nie jest dekodowanie komunikatów. Inne opcje to <xref:azure.storage.queue.aio.TextBase64DecodePolicy>, <xref:azure.storage.queue.aio.BinaryBase64DecodePolicy> lub Brak.

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.

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
   )

Utwórz klienta kolejki przy użyciu parametry połączenia.


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

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 ma przetwarzać i usuwać komunikat. Aby usunąć komunikat, musisz mieć sam obiekt komunikatu lub dwa elementy danych: identyfikator i pop_receipt. Identyfikator jest zwracany z poprzedniej operacji receive_messages. Pop_receipt jest zwracana z najnowszej receive_messages lub update_message operacji. Aby operacja delete_message powiodła się, pop_receipt określona w żą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.

Gdy kolejka zostanie pomyślnie usunięta, zostanie ona natychmiast oznaczona do usunięcia i nie jest 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.aio.HttpResponseError> zostanie zwrócona operacja.

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 wszelkich 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 w kolejce.

peek_messages

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

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

Jeśli pole key-encryption-key lub resolver jest ustawione w 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 przedział czasu określony przez parametr visibility_timeout.

Jeśli pole key-encryption-key lub resolver jest ustawione w 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 przedział 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 max_messages jest ustawiona).

Jeśli pole key-encryption-key lub resolver jest ustawione w 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, przez który komunikat będzie niewidoczny. Po wygaśnięciu limitu czasu komunikat stanie się widoczny. 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 w obiekcie usługi lokalnej, ta metoda zaszyfruje 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, aby przeprowadzić aktualizację.

Po ustanowieniu przechowywanych zasad dostępu w kolejce może upłynąć 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.aio.HttpResponseError> do momentu, aż zasady dostępu staną się aktywne.

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ść komunikatu.

Ta operacja może służyć do ciągłego rozszerzania widoczności komunikatu kolejki. Ta funkcja może być przydatna, jeśli chcesz, aby rola procesu roboczego "dzierżawiła" komunikat kolejki. 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 na obiekcie usługi lokalnej, ta metoda będzie szyfrować zawartość przed przekazaniem.

clear_messages

Usuwa wszystkie komunikaty z określonej kolejki.

async 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.


   await 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.

async 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.

async 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 metadanymi. 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

Utwórz kolejkę.


   await queue.create_queue()

delete_message

Usuwa określony komunikat.

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

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

Parametry

message
str lub QueueMessage
Wymagane

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

pop_receipt
str
Wymagane

Prawidłowa wartość potwierdzenia pop zwrócona z wcześniejszego wywołania do receive_messages obiektu 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ń komunikat.


   # Get the message at the front of the queue
   messages = queue.receive_messages()
   async for msg in messages:
       # Delete the specified message
       await queue.delete_message(msg)

delete_queue

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

Gdy kolejka zostanie pomyślnie usunięta, zostanie ona natychmiast oznaczona do usunięcia i nie jest 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.aio.HttpResponseError> zostanie zwrócona operacja.

async 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

Usuń kolejkę.


   await 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 | AsyncTokenCredential | 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 elementu azure.core.credentials, kluczem dostępu współużytkowanego konta lub wystąpieniem klasy TokenCredentials z klasy 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 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

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 | AsyncTokenCredential | 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 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.
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

get_queue_access_policy

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

async 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 skojarzonych 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 w kolejce.

async 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 = await queue.get_queue_properties()

peek_messages

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

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

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

async 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 w kolejkę, maksymalnie 32. Domyślnie pojedynczy komunikat jest wyświetlany 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 wyskakuje komunikatu i może pobrać tylko widoczne komunikaty.

Typ zwracany

Przykłady

Podgląd wiadomości.


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

   # Peek at the last 5 messages
   messages = await 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 przedział czasu określony przez parametr visibility_timeout.

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

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

Parametry

visibility_timeout
int

Jeśli nie zostanie określony, 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. Limit czasu widoczności komunikatu nie może być ustawiony na wartość późniejszą 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

Odbieranie jednego komunikatu z kolejki.


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

       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[0].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 przedział 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 max_messages jest ustawiona).

Jeśli pole key-encryption-key lub resolver jest ustawione w 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) -> AsyncItemPaged[QueueMessage]

Parametry

messages_per_page
int

Niezerowa wartość całkowita określająca liczbę komunikatów do pobrania z kolejki, maksymalnie 32. Jeśli mniej jest widocznych, zwracane są widoczne komunikaty. Domyślnie pojedynczy komunikat jest pobierany z kolejki przy użyciu tej operacji. by_page() można użyć do udostępnienia iteratora strony w pliku AsyncItemPaged, jeśli ustawiono messages_per_page. Za pomocą polecenia next() można pobrać następną stronę.

visibility_timeout
int

Jeśli nie zostanie określony, 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. Limit czasu widoczności komunikatu nie może być ustawiony na wartość późniejszą 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()
   async for msg in messages:
       print(msg.content)

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

send_message

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

Limit czasu widoczności określa czas, przez który komunikat będzie niewidoczny. Po wygaśnięciu limitu czasu komunikat stanie się widoczny. 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 w obiekcie usługi lokalnej, ta metoda zaszyfruje zawartość przed przekazaniem.

async 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 ustawioną 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ślony, 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. Limit czasu widoczności komunikatu nie może być ustawiony na wartość późniejszą 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 to 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 wiadomości.


   await asyncio.gather(
       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, aby przeprowadzić aktualizację.

Po ustanowieniu przechowywanych zasad dostępu w kolejce może upłynąć 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.aio.HttpResponseError> do momentu, aż zasady dostępu staną się aktywne.

async 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
   await 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.

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

Parametry

metadata
Optional[Dict[str, Any]]
Wymagane

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

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'}
   await 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ść komunikatu.

Ta operacja może służyć do ciągłego rozszerzania widoczności komunikatu kolejki. Ta funkcja może być przydatna, jeśli chcesz, aby rola procesu roboczego "dzierżawiła" komunikat kolejki. 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 na obiekcie usługi lokalnej, ta metoda będzie szyfrować zawartość przed przekazaniem.

async 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 komunikatu lub identyfikator identyfikujący komunikat do zaktualizowania.

pop_receipt
str
Wymagane

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

content
Optional[object]
Wymagane

Zawartość wiadomości. Dozwolony typ jest określany przez encode_function ustawiony 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. Nie można ustawić limitu czasu widoczności komunikatu na wartość później 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

Zaktualizuj komunikat.


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

   # Receive the message
   messages = queue.receive_messages()

   # Update the message
   async for message in messages:
       message = await queue.update_message(
           message,
           visibility_timeout=0,
           content="updated")

Atrybuty

api_version

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

Typ zwracany

str

location_mode

Tryb lokalizacji używany przez klienta.

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 pomocniczy adres URL punktu końcowego, jeśli został skonfigurowany.

Jeśli parametr ValueError nie jest dostępny, zostanie zgłoszony. Aby jawnie określić pomocniczą nazwę hosta, użyj opcjonalnego argumentu słowa kluczowego secondary_hostname 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 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_modeelementu . :zwraca: pełny adres URL punktu końcowego do tej jednostki, w tym token SAS, jeśli jest używany. :rtype: str