QueueClient Klasa
Klient do interakcji z określoną kolejką.
Aby uzyskać więcej opcjonalnych konfiguracji, kliknij tutaj.
- Dziedziczenie
-
azure.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 | TokenCredential | None = None, **kwargs: Any)
Parametry
- account_url
- str
Adres URL konta magazynu. Aby utworzyć klienta z pełnym identyfikatorem URI kolejki, 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 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
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
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
Obiekt lub identyfikator komunikatu identyfikujący komunikat do usunięcia.
- pop_receipt
- str
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
- 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 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
- 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.
- 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
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
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]
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
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
Obiekt lub identyfikator komunikatu identyfikujący komunikat do zaktualizowania.
- pop_receipt
- str
Prawidłowa wartość potwierdzenia pop zwrócona z wcześniejszego wywołania operacji receive_messages lub update_message .
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
location_mode
Tryb lokalizacji, z którego obecnie korzysta klient.
Domyślnie będzie to "podstawowe". Opcje obejmują "podstawowe" i "pomocnicze".
Typ zwracany
primary_endpoint
primary_hostname
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
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
Azure SDK for Python