QueueClient Klasa
Klient do interakcji z określoną kolejką.
- Dziedziczenie
-
azure.storage.queue._shared.base_client_async.AsyncStorageAccountHostsMixinQueueClientazure.storage.queue._shared.base_client.StorageAccountHostsMixinQueueClientazure.storage.queue._encryption.StorageEncryptionMixinQueueClient
Konstruktor
QueueClient(account_url: str, queue_name: str, credential: str | Dict[str, str] | AzureNamedKeyCredential | AzureSasCredential | AsyncTokenCredential | None = None, **kwargs: Any)
Parametry
- account_url
- str
Adres URL konta magazynu. Aby utworzyć klienta z pełnym identyfikatorem URI w kolejce, użyj from_queue_url klasymethod.
- credential
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
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
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
Obiekt komunikatu lub identyfikator identyfikujący komunikat do usunięcia.
- pop_receipt
- str
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
- credential
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
- credential
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
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
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]
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
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
Obiekt komunikatu lub identyfikator identyfikujący komunikat do zaktualizowania.
- pop_receipt
- str
Prawidłowa wartość potwierdzenia pop zwrócona z wcześniejszego wywołania operacji receive_messages or update_message .
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
location_mode
Tryb lokalizacji używany przez klienta.
Domyślnie będzie to "podstawowe". Opcje obejmują "podstawowe" i "pomocnicze".
Typ zwracany
primary_endpoint
primary_hostname
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
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
Azure SDK for Python