Freigeben über


QueueClient Klasse

Ein Client, der mit einer bestimmten Warteschlange interagiert.

Weitere optionale Konfigurationen finden Sie hier.

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

Konstruktor

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

Parameter

account_url
str
Erforderlich

Die URL zum Speicherkonto. Um einen Client mit dem vollständigen URI für die Warteschlange zu erstellen, verwenden Sie die from_queue_url -Klassenmethode.

queue_name
str
Erforderlich

Der Name der Warteschlange.

credential
Standardwert: None

Die Anmeldeinformationen, mit denen die Authentifizierung erfolgt. Dies ist optional, wenn die Konto-URL bereits über ein SAS-Token verfügt. Der Wert kann eine SAS-Tokenzeichenfolge, eine instance eines AzureSasCredential- oder AzureNamedKeyCredential-Elements von azure.core.credentials, ein kontofreigaber Zugriffsschlüssel oder ein instance einer TokenCredentials-Klasse aus azure.identity sein. Wenn der Ressourcen-URI bereits ein SAS-Token enthält, wird dies zugunsten einer expliziten Anmeldeinformation ignoriert.

  • außer im Fall von AzureSasCredential, bei dem die in Konflikt stehenden SAS-Token einen ValueError auslösen. Wenn Sie eine instance von AzureNamedKeyCredential verwenden, sollte "name" der Name des Speicherkontos und "key" der Speicherkontoschlüssel sein.
api_version
str

Die Speicher-API-Version, die für Anforderungen verwendet werden soll. Der Standardwert ist die neueste Dienstversion, die mit dem aktuellen SDK kompatibel ist. Die Einstellung auf eine ältere Version kann zu einer verringerten Featurekompatibilität führen.

secondary_hostname
str

Der Hostname des sekundären Endpunkts.

message_encode_policy

Die Codierungsrichtlinie, die für ausgehende Nachrichten verwendet werden soll. Standardmäßig werden keine Nachrichten codiert. Weitere Optionen sind TextBase64EncodePolicy, BinaryBase64EncodePolicy oder Keine.

message_decode_policy

Die Decodierungsrichtlinie, die für eingehende Nachrichten verwendet werden soll. Der Standardwert ist, um Nachrichten nicht zu decodieren. Weitere Optionen sind TextBase64DecodePolicy, BinaryBase64DecodePolicy oder Keine.

audience
str

Die Zielgruppe, die beim Anfordern von Token für die Azure Active Directory-Authentifizierung verwendet werden soll. Wirkt sich nur aus, wenn Anmeldeinformationen vom Typ TokenCredential sind. Der Wert kann (Standard) oder https:/.queue.core.windows.net sein https://storage.azure.com/ .

Beispiele

Erstellen Sie den Warteschlangenclient mit URL und Anmeldeinformationen.


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

Methoden

clear_messages

Löscht alle Nachrichten aus der angegebenen Warteschlange.

close

Diese Methode besteht darin, die vom Client geöffneten Sockets zu schließen. Es muss nicht verwendet werden, wenn sie mit einem Kontext-Manager verwendet wird.

create_queue

Erstellt eine neue Warteschlange im Speicherkonto.

Wenn bereits eine Warteschlange mit demselben Namen vorhanden ist, schlägt der Vorgang mit einem ResourceExistsError-Fehler fehl.

delete_message

Löscht die angegebene Nachricht.

Normalerweise wird erwartet, dass der Client die Nachricht verarbeitet und löscht, nachdem ein Client eine Nachricht mit dem Vorgang "Empfangen von Nachrichten" abgerufen hat. Zum Löschen der Nachricht benötigen Sie das Nachrichtenobjekt selbst oder zwei Datenelemente: id und pop_receipt. Die ID wird vom vorherigen receive_messages-Vorgang zurückgegeben. Die pop_receipt wird vom letzten receive_messages Oder update_message -Vorgang zurückgegeben. Damit der delete_message Vorgang erfolgreich ist, muss der in der Anforderung angegebene pop_receipt mit dem pop_receipt übereinstimmen, der receive_messages vom - oder update_message -Vorgang zurückgegeben wird.

delete_queue

Löscht die angegebene Warteschlange und alle darin enthaltenen Nachrichten.

Wenn eine Warteschlange erfolgreich gelöscht wurde, wird sie sofort zum Löschen markiert und ist für Clients nicht mehr zugänglich. Die Warteschlange wird später während der automatischen Speicherbereinigung aus dem Warteschlangendienst entfernt.

Beachten Sie, dass das Löschen einer Warteschlange wahrscheinlich mindestens 40 Sekunden dauert. Wenn ein Vorgang für die Warteschlange versucht wird, während er gelöscht wurde, wird eine <xref:azure.storage.queue.HttpResponseError> ausgelöst.

from_connection_string

Erstellen Sie QueueClient aus einer Verbindungszeichenfolge.

from_queue_url

Ein Client, der mit einer bestimmten Warteschlange interagiert.

get_queue_access_policy

Gibt Details zu allen gespeicherten Zugriffsrichtlinien zurück, die in der Warteschlange angegeben sind und mit Shared Access Signatures verwendet werden können.

get_queue_properties

Gibt alle benutzerdefinierten Metadaten für die angegebene Warteschlange zurück.

Die zurückgegebenen Daten enthalten nicht die Liste der Nachrichten der Warteschlange.

peek_messages

Ruft eine oder mehrere Nachrichten von der Vorderseite der Warteschlange ab, ändert jedoch nicht die Sichtbarkeit der Nachricht.

Es können nur nachrichten abgerufen werden, die sichtbar sind. Wenn eine Nachricht zum ersten Mal mit einem Aufruf receive_messagesvon abgerufen wird, wird die dequeue_count -Eigenschaft auf 1 festgelegt. Wenn es nicht gelöscht und anschließend erneut abgerufen wird, wird die dequeue_count-Eigenschaft erhöht. Der Client bestimmt anhand dieses Werts möglicherweise, wie oft eine Nachricht abgerufen wurde. Beachten Sie, dass ein Aufruf von peek_messages nicht den Wert von dequeue_count erhöht, sondern diesen Wert für den Client zum Lesen zurückgibt.

Wenn das Schlüsselverschlüsselungsschlüssel- oder Resolverfeld für das lokale Dienstobjekt festgelegt ist, werden die Nachrichten entschlüsselt, bevor sie zurückgegeben werden.

receive_message

Entfernt eine Nachricht von der Vorderseite der Warteschlange.

Wenn die Nachricht aus der Warteschlange abgerufen wird, enthält die Antwort den Nachrichteninhalt und einen pop_receipt Wert, der zum Löschen der Nachricht erforderlich ist. Die Nachricht wird nicht automatisch aus der Warteschlange gelöscht, aber nachdem sie abgerufen wurde, ist sie für andere Clients für das durch den Parameter visibility_timeout angegebene Zeitintervall nicht sichtbar.

Wenn das Schlüsselverschlüsselungsschlüssel- oder Resolverfeld für das lokale Dienstobjekt festgelegt ist, wird die Nachricht vor der Rückgabe entschlüsselt.

receive_messages

Entfernt eine oder mehrere Nachrichten von der Vorderseite der Warteschlange.

Wenn eine Nachricht aus der Warteschlange abgerufen wird, enthält die Antwort den Nachrichteninhalt und einen pop_receipt-Wert, der zum Löschen der Nachricht erforderlich ist. Die Nachricht wird nicht automatisch aus der Warteschlange gelöscht, aber nachdem sie abgerufen wurde, ist sie für andere Clients für das durch den Parameter visibility_timeout angegebene Zeitintervall nicht sichtbar. Der Iterator ruft kontinuierlich Nachrichten ab, bis die Warteschlange leer ist oder max_messages erreicht ist (wenn max_messages festgelegt ist).

Wenn das Schlüsselverschlüsselungsschlüssel- oder Resolverfeld für das lokale Dienstobjekt festgelegt ist, werden die Nachrichten entschlüsselt, bevor sie zurückgegeben werden.

send_message

Fügt eine neue Nachricht auf der Rückseite der Nachrichtenwarteschlange hinzu.

Das Sichtbarkeitstimeout gibt die Zeit an, zu der die Nachricht unsichtbar ist. Wenn das Timeout abläuft, wird die Nachricht sichtbar. Wenn kein Sichtbarkeitstimeout angegeben ist, wird der Standardwert 0 verwendet.

Die Gültigkeitsdauer der Nachricht gibt an, wie lange eine Nachricht in der Warteschlange verbleibt. Die Nachricht wird aus der Warteschlange gelöscht, wenn die Gültigkeitsdauer abläuft.

Wenn das Feld schlüssel-encryption-key für das lokale Dienstobjekt festgelegt ist, verschlüsselt diese Methode den Inhalt vor dem Hochladen.

set_queue_access_policy

Legt gespeicherte Zugriffsrichtlinien für die Warteschlange fest, die mit SAS (Shared Access Signature) verwendet werden können.

Wenn Sie Berechtigungen für eine Warteschlange festlegen, werden die vorhandenen Berechtigungen ersetzt. Um die Berechtigungen der Warteschlange zu aktualisieren, rufen Sie get_queue_access_policy auf, um alle zugriffsrichtlinien abzurufen, die der Warteschlange zugeordnet sind, ändern Sie die Zugriffsrichtlinie, die Sie ändern möchten, und rufen Sie dann diese Funktion mit dem vollständigen Satz von Daten auf, um die Aktualisierung durchzuführen.

Wenn Sie eine gespeicherte Zugriffsrichtlinie für eine Warteschlange einrichten, kann es bis zu 30 Sekunden dauern, bis die Richtlinie angewendet wird. Während dieses Intervalls löst eine Shared Access Signature, die der gespeicherten Zugriffsrichtlinie zugeordnet ist, eine aus <xref:azure.storage.queue.HttpResponseError> , bis die Zugriffsrichtlinie aktiv wird.

set_queue_metadata

Legt benutzerdefinierte Metadaten für die angegebene Warteschlange fest.

Metadaten werden der Warteschlange als Name-Wert-Paare zugeordnet.

update_message

Updates das Sichtbarkeitstimeout einer Nachricht. Sie können diesen Vorgang auch verwenden, um den Inhalt einer Nachricht zu aktualisieren.

Dieser Vorgang kann verwendet werden, um die Sichtbarkeit einer Warteschlangennachricht kontinuierlich zu erweitern. Diese Funktionalität kann nützlich sein, wenn eine Workerrolle eine Warteschlangennachricht "leasen" soll. Wenn beispielsweise eine Workerrolle aufruft receive_messages und erkennt, dass sie mehr Zeit zum Verarbeiten einer Nachricht benötigt, kann sie die Sichtbarkeit der Nachricht kontinuierlich erweitern, bis sie verarbeitet wird. Wenn die Verarbeitung durch die Workerrolle fehlschlägt, wird die Nachricht schließlich wieder sichtbar, und sie kann von einer anderen Workerrolle verarbeitet werden.

Wenn das Feld schlüssel-encryption-key für das lokale Dienstobjekt festgelegt ist, verschlüsselt diese Methode den Inhalt vor dem Hochladen.

clear_messages

Löscht alle Nachrichten aus der angegebenen Warteschlange.

clear_messages(**kwargs: Any) -> None

Parameter

timeout
int

Legt das serverseitige Timeout für den Vorgang in Sekunden fest. Weitere Informationen finden Sie unter https://learn.microsoft.com/en-us/rest/api/storageservices/setting-timeouts-for-queue-service-operations. Dieser Wert wird auf dem Client nicht nachverfolgt oder überprüft. Informationen zum Konfigurieren clientseitiger Netzwerktimeouts finden Sie hier.

Beispiele

Löscht alle Nachrichten.


   queue.clear_messages()

close

Diese Methode besteht darin, die vom Client geöffneten Sockets zu schließen. Es muss nicht verwendet werden, wenn sie mit einem Kontext-Manager verwendet wird.

close()

create_queue

Erstellt eine neue Warteschlange im Speicherkonto.

Wenn bereits eine Warteschlange mit demselben Namen vorhanden ist, schlägt der Vorgang mit einem ResourceExistsError-Fehler fehl.

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

Parameter

metadata
Dict[str,str]

Ein Diktat, das Name-Wert-Paare enthält, die der Warteschlange als Metadaten zugeordnet werden sollen. Beachten Sie, dass für Metadatennamen die Groß-/Kleinschreibung beibehalten wird, die bei der Erstellung verwendet wurde. Beim Festlegen oder Lesen wird die Groß-/Kleinschreibung aber nicht berücksichtigt.

timeout
int

Legt das serverseitige Timeout für den Vorgang in Sekunden fest. Weitere Informationen finden Sie unter https://learn.microsoft.com/en-us/rest/api/storageservices/setting-timeouts-for-queue-service-operations. Dieser Wert wird auf dem Client nicht nachverfolgt oder überprüft. Informationen zum Konfigurieren clientseitiger Netzwerktimeouts finden Sie hier.

Gibt zurück

Keine oder das Ergebnis von cls(response)

Rückgabetyp

Ausnahmen

StorageErrorException

Beispiele

Erstellen Sie eine Warteschlange.


   queue.create_queue()

delete_message

Löscht die angegebene Nachricht.

Normalerweise wird erwartet, dass der Client die Nachricht verarbeitet und löscht, nachdem ein Client eine Nachricht mit dem Vorgang "Empfangen von Nachrichten" abgerufen hat. Zum Löschen der Nachricht benötigen Sie das Nachrichtenobjekt selbst oder zwei Datenelemente: id und pop_receipt. Die ID wird vom vorherigen receive_messages-Vorgang zurückgegeben. Die pop_receipt wird vom letzten receive_messages Oder update_message -Vorgang zurückgegeben. Damit der delete_message Vorgang erfolgreich ist, muss der in der Anforderung angegebene pop_receipt mit dem pop_receipt übereinstimmen, der receive_messages vom - oder update_message -Vorgang zurückgegeben wird.

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

Parameter

message
str oder QueueMessage
Erforderlich

Das Nachrichtenobjekt oder die ID, die die zu löschende Nachricht identifiziert.

pop_receipt
str
Erforderlich

Ein gültiger Pop-Belegwert, der von einem früheren Aufruf von receive_messages oder update_messagezurückgegeben wurde.

timeout
int

Legt das serverseitige Timeout für den Vorgang in Sekunden fest. Weitere Informationen finden Sie unter https://learn.microsoft.com/en-us/rest/api/storageservices/setting-timeouts-for-queue-service-operations. Dieser Wert wird auf dem Client nicht nachverfolgt oder überprüft. Informationen zum Konfigurieren clientseitiger Netzwerktimeouts finden Sie hier.

Beispiele

Löschen sie eine Nachricht.


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

   # Delete the specified message
   queue.delete_message(msg)

delete_queue

Löscht die angegebene Warteschlange und alle darin enthaltenen Nachrichten.

Wenn eine Warteschlange erfolgreich gelöscht wurde, wird sie sofort zum Löschen markiert und ist für Clients nicht mehr zugänglich. Die Warteschlange wird später während der automatischen Speicherbereinigung aus dem Warteschlangendienst entfernt.

Beachten Sie, dass das Löschen einer Warteschlange wahrscheinlich mindestens 40 Sekunden dauert. Wenn ein Vorgang für die Warteschlange versucht wird, während er gelöscht wurde, wird eine <xref:azure.storage.queue.HttpResponseError> ausgelöst.

delete_queue(**kwargs: Any) -> None

Parameter

timeout
int

Legt das serverseitige Timeout für den Vorgang in Sekunden fest. Weitere Informationen finden Sie unter https://learn.microsoft.com/en-us/rest/api/storageservices/setting-timeouts-for-queue-service-operations. Dieser Wert wird auf dem Client nicht nachverfolgt oder überprüft. Informationen zum Konfigurieren clientseitiger Netzwerktimeouts finden Sie hier.

Rückgabetyp

Beispiele

Löschen sie eine Warteschlange.


   queue.delete_queue()

from_connection_string

Erstellen Sie QueueClient aus einer Verbindungszeichenfolge.

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

Parameter

conn_str
str
Erforderlich

Ein Verbindungszeichenfolge zu einem Azure Storage-Konto.

queue_name
str
Erforderlich

Der Warteschlangenname.

credential
Standardwert: None

Die Anmeldeinformationen, mit denen die Authentifizierung erfolgt. Dies ist optional, wenn die Konto-URL bereits über ein SAS-Token verfügt oder die Verbindungszeichenfolge bereits über Shared Access Key-Werte verfügt. Der Wert kann eine SAS-Tokenzeichenfolge, eine instance eines AzureSasCredential- oder AzureNamedKeyCredential-Elements von azure.core.credentials, ein kontofreigaber Zugriffsschlüssel oder ein instance einer TokenCredentials-Klasse aus azure.identity sein. Die hier bereitgestellten Anmeldeinformationen haben Vorrang vor denen im Verbindungszeichenfolge. Wenn Sie eine instance von AzureNamedKeyCredential verwenden, sollte "name" der Name des Speicherkontos und "key" der Speicherkontoschlüssel sein.

audience
str

Die Zielgruppe, die beim Anfordern von Token für die Azure Active Directory-Authentifizierung verwendet werden soll. Wirkt sich nur aus, wenn Anmeldeinformationen vom Typ TokenCredential sind. Der Wert kann (Standard) oder https:/.queue.core.windows.net sein https://storage.azure.com/ .

Gibt zurück

Ein Warteschlangenclient.

Rückgabetyp

Beispiele

Erstellen Sie den Warteschlangenclient aus Verbindungszeichenfolge.


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

from_queue_url

Ein Client, der mit einer bestimmten Warteschlange interagiert.

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

Parameter

queue_url
str
Erforderlich

Der vollständige URI für die Warteschlange, einschließlich des SAS-Tokens, falls verwendet.

credential
Standardwert: None

Die Anmeldeinformationen, mit denen die Authentifizierung erfolgt. Dies ist optional, wenn die Konto-URL bereits über ein SAS-Token verfügt. Der Wert kann eine SAS-Tokenzeichenfolge, eine instance eines AzureSasCredential- oder AzureNamedKeyCredential-Elements von azure.core.credentials, ein kontofreigaber Zugriffsschlüssel oder ein instance einer TokenCredentials-Klasse aus azure.identity sein. Wenn der Ressourcen-URI bereits ein SAS-Token enthält, wird dies zugunsten einer expliziten Anmeldeinformation ignoriert.

  • außer im Fall von AzureSasCredential, bei dem die in Konflikt stehenden SAS-Token einen ValueError auslösen. Wenn Sie eine instance von AzureNamedKeyCredential verwenden, sollte "name" der Name des Speicherkontos und "key" der Speicherkontoschlüssel sein.
audience
str

Die Zielgruppe, die beim Anfordern von Token für die Azure Active Directory-Authentifizierung verwendet werden soll. Wirkt sich nur aus, wenn Anmeldeinformationen vom Typ TokenCredential sind. Der Wert kann (Standard) oder https:/.queue.core.windows.net sein https://storage.azure.com/ .

Gibt zurück

Ein Warteschlangenclient.

Rückgabetyp

get_queue_access_policy

Gibt Details zu allen gespeicherten Zugriffsrichtlinien zurück, die in der Warteschlange angegeben sind und mit Shared Access Signatures verwendet werden können.

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

Parameter

timeout
int

Legt das serverseitige Timeout für den Vorgang in Sekunden fest. Weitere Informationen finden Sie unter https://learn.microsoft.com/en-us/rest/api/storageservices/setting-timeouts-for-queue-service-operations. Dieser Wert wird auf dem Client nicht nachverfolgt oder überprüft. Informationen zum Konfigurieren clientseitiger Netzwerktimeouts finden Sie hier.

Gibt zurück

Ein Wörterbuch mit Zugriffsrichtlinien, die der Warteschlange zugeordnet sind.

Rückgabetyp

get_queue_properties

Gibt alle benutzerdefinierten Metadaten für die angegebene Warteschlange zurück.

Die zurückgegebenen Daten enthalten nicht die Liste der Nachrichten der Warteschlange.

get_queue_properties(**kwargs: Any) -> QueueProperties

Parameter

timeout
int

Der timeout-Parameter wird in Sekunden angegeben.

Gibt zurück

Benutzerdefinierte Metadaten für die Warteschlange.

Rückgabetyp

Beispiele

Ruft die Eigenschaften in der Warteschlange ab.


   properties = queue.get_queue_properties().metadata

peek_messages

Ruft eine oder mehrere Nachrichten von der Vorderseite der Warteschlange ab, ändert jedoch nicht die Sichtbarkeit der Nachricht.

Es können nur nachrichten abgerufen werden, die sichtbar sind. Wenn eine Nachricht zum ersten Mal mit einem Aufruf receive_messagesvon abgerufen wird, wird die dequeue_count -Eigenschaft auf 1 festgelegt. Wenn es nicht gelöscht und anschließend erneut abgerufen wird, wird die dequeue_count-Eigenschaft erhöht. Der Client bestimmt anhand dieses Werts möglicherweise, wie oft eine Nachricht abgerufen wurde. Beachten Sie, dass ein Aufruf von peek_messages nicht den Wert von dequeue_count erhöht, sondern diesen Wert für den Client zum Lesen zurückgibt.

Wenn das Schlüsselverschlüsselungsschlüssel- oder Resolverfeld für das lokale Dienstobjekt festgelegt ist, werden die Nachrichten entschlüsselt, bevor sie zurückgegeben werden.

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

Parameter

max_messages
int
Erforderlich

Ein ganzzahliger Wert ungleich 0 (null), der die Anzahl der Nachrichten angibt, die aus der Warteschlange einzusehen sind; der maximale Wert beträgt 32. Standardmäßig wird mit diesem Vorgang eine einzige Nachricht aus der Warteschlange eingesehen.

timeout
int

Legt das serverseitige Timeout für den Vorgang in Sekunden fest. Weitere Informationen finden Sie unter https://learn.microsoft.com/en-us/rest/api/storageservices/setting-timeouts-for-queue-service-operations. Dieser Wert wird auf dem Client nicht nachverfolgt oder überprüft. Informationen zum Konfigurieren clientseitiger Netzwerktimeouts finden Sie hier.

Gibt zurück

Eine Liste von QueueMessage-Objekten. Beachten Sie, dass next_visible_on und pop_receipt nicht aufgefüllt werden, da die Nachricht nicht eingeblendet wird und nur bereits sichtbare Nachrichten abgerufen werden können.

Rückgabetyp

Beispiele

Peek Nachrichten.


   # 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

Entfernt eine Nachricht von der Vorderseite der Warteschlange.

Wenn die Nachricht aus der Warteschlange abgerufen wird, enthält die Antwort den Nachrichteninhalt und einen pop_receipt Wert, der zum Löschen der Nachricht erforderlich ist. Die Nachricht wird nicht automatisch aus der Warteschlange gelöscht, aber nachdem sie abgerufen wurde, ist sie für andere Clients für das durch den Parameter visibility_timeout angegebene Zeitintervall nicht sichtbar.

Wenn das Schlüsselverschlüsselungsschlüssel- oder Resolverfeld für das lokale Dienstobjekt festgelegt ist, wird die Nachricht vor der Rückgabe entschlüsselt.

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

Parameter

visibility_timeout
int

Wenn nicht angegeben, ist der Standardwert 30. Gibt den neuen Sichtbarkeitstimeoutwert in Sekunden relativ zur Serverzeit an. Der Wert muss größer oder gleich 1 sein und darf nicht größer als 7 Tage sein. Das Sichtbarkeitstimeout einer Nachricht darf nicht auf einen Wert festgelegt werden, der nach der Ablaufzeit liegt. visibility_timeout sollte auf einen Wert festgelegt werden, der kleiner als der Wert für die Gültigkeitsdauer ist.

timeout
int

Legt das serverseitige Timeout für den Vorgang in Sekunden fest. Weitere Informationen finden Sie unter https://learn.microsoft.com/en-us/rest/api/storageservices/setting-timeouts-for-queue-service-operations. Dieser Wert wird auf dem Client nicht nachverfolgt oder überprüft. Informationen zum Konfigurieren clientseitiger Netzwerktimeouts finden Sie hier.

Gibt zurück

Gibt eine Nachricht aus der Warteschlange oder Keine zurück, wenn die Warteschlange leer ist.

Rückgabetyp

Beispiele

Empfangen einer Nachricht aus der Warteschlange.


   # 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

Entfernt eine oder mehrere Nachrichten von der Vorderseite der Warteschlange.

Wenn eine Nachricht aus der Warteschlange abgerufen wird, enthält die Antwort den Nachrichteninhalt und einen pop_receipt-Wert, der zum Löschen der Nachricht erforderlich ist. Die Nachricht wird nicht automatisch aus der Warteschlange gelöscht, aber nachdem sie abgerufen wurde, ist sie für andere Clients für das durch den Parameter visibility_timeout angegebene Zeitintervall nicht sichtbar. Der Iterator ruft kontinuierlich Nachrichten ab, bis die Warteschlange leer ist oder max_messages erreicht ist (wenn max_messages festgelegt ist).

Wenn das Schlüsselverschlüsselungsschlüssel- oder Resolverfeld für das lokale Dienstobjekt festgelegt ist, werden die Nachrichten entschlüsselt, bevor sie zurückgegeben werden.

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

Parameter

visibility_timeout
int

Wenn nicht angegeben, ist der Standardwert 30. Gibt den neuen Sichtbarkeitstimeoutwert in Sekunden relativ zur Serverzeit an. Der Wert muss größer oder gleich 1 sein und darf nicht größer als 7 Tage sein. Das Sichtbarkeitstimeout einer Nachricht darf nicht auf einen Wert festgelegt werden, der nach der Ablaufzeit liegt. visibility_timeout sollte auf einen Wert festgelegt werden, der kleiner als der Wert für die Gültigkeitsdauer ist.

max_messages
int

Eine ganze Zahl, die die maximale Anzahl von Nachrichten angibt, die aus der Warteschlange abgerufen werden sollen.

timeout
int

Legt das serverseitige Timeout für den Vorgang in Sekunden fest. Weitere Informationen finden Sie unter https://learn.microsoft.com/en-us/rest/api/storageservices/setting-timeouts-for-queue-service-operations. Dieser Wert wird auf dem Client nicht nachverfolgt oder überprüft. Informationen zum Konfigurieren clientseitiger Netzwerktimeouts finden Sie hier.

Gibt zurück

Gibt einen Nachrichteniterator von dict-ähnlichen Message-Objekten zurück.

Rückgabetyp

Beispiele

Empfangen von Nachrichten aus der Warteschlange.


   # 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

Fügt eine neue Nachricht auf der Rückseite der Nachrichtenwarteschlange hinzu.

Das Sichtbarkeitstimeout gibt die Zeit an, zu der die Nachricht unsichtbar ist. Wenn das Timeout abläuft, wird die Nachricht sichtbar. Wenn kein Sichtbarkeitstimeout angegeben ist, wird der Standardwert 0 verwendet.

Die Gültigkeitsdauer der Nachricht gibt an, wie lange eine Nachricht in der Warteschlange verbleibt. Die Nachricht wird aus der Warteschlange gelöscht, wenn die Gültigkeitsdauer abläuft.

Wenn das Feld schlüssel-encryption-key für das lokale Dienstobjekt festgelegt ist, verschlüsselt diese Methode den Inhalt vor dem Hochladen.

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

Parameter

content
Optional[object]
Erforderlich

Nachrichteninhalt. Der zulässige Typ wird durch die für den Dienst festgelegte encode_function bestimmt. Der Standardwert ist str. Die codierte Nachricht kann bis zu 64 KB groß sein.

visibility_timeout
int

Wenn dieser Wert fehlt, wird der Standardwert 0 verwendet. Gibt den neuen Sichtbarkeitstimeoutwert in Sekunden relativ zur Serverzeit an. Der Wert muss größer oder gleich 0 sein und darf nicht größer als 7 Tage sein. Das Sichtbarkeitstimeout einer Nachricht darf nicht auf einen Wert festgelegt werden, der nach der Ablaufzeit liegt. visibility_timeout sollte auf einen Wert festgelegt werden, der kleiner als der Wert für die Gültigkeitsdauer ist.

time_to_live
int

Gibt das Gültigkeitsdauerintervall für die Nachricht in Sekunden an. Die Gültigkeitsdauer kann eine beliebige positive Zahl oder -1 für unendlich sein. Wenn dieser Parameter nicht angegeben ist, beträgt die Standardgültigkeitsdauer 7 Tage.

timeout
int

Legt das serverseitige Timeout für den Vorgang in Sekunden fest. Weitere Informationen finden Sie unter https://learn.microsoft.com/en-us/rest/api/storageservices/setting-timeouts-for-queue-service-operations. Dieser Wert wird auf dem Client nicht nachverfolgt oder überprüft. Informationen zum Konfigurieren clientseitiger Netzwerktimeouts finden Sie hier.

Gibt zurück

Ein QueueMessage-Objekt. Dieses Objekt wird auch mit dem Inhalt aufgefüllt, obwohl es nicht vom Dienst zurückgegeben wird.

Rückgabetyp

Beispiele

Nachrichten senden.


   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

Legt gespeicherte Zugriffsrichtlinien für die Warteschlange fest, die mit SAS (Shared Access Signature) verwendet werden können.

Wenn Sie Berechtigungen für eine Warteschlange festlegen, werden die vorhandenen Berechtigungen ersetzt. Um die Berechtigungen der Warteschlange zu aktualisieren, rufen Sie get_queue_access_policy auf, um alle zugriffsrichtlinien abzurufen, die der Warteschlange zugeordnet sind, ändern Sie die Zugriffsrichtlinie, die Sie ändern möchten, und rufen Sie dann diese Funktion mit dem vollständigen Satz von Daten auf, um die Aktualisierung durchzuführen.

Wenn Sie eine gespeicherte Zugriffsrichtlinie für eine Warteschlange einrichten, kann es bis zu 30 Sekunden dauern, bis die Richtlinie angewendet wird. Während dieses Intervalls löst eine Shared Access Signature, die der gespeicherten Zugriffsrichtlinie zugeordnet ist, eine aus <xref:azure.storage.queue.HttpResponseError> , bis die Zugriffsrichtlinie aktiv wird.

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

Parameter

signed_identifiers
Dict[str, AccessPolicy]
Erforderlich

SignedIdentifier-Zugriffsrichtlinien, die der Warteschlange zugeordnet werden sollen. Dies kann bis zu 5 Elemente enthalten. Ein leeres Dict löscht die zugriffsrichtlinien, die für den Dienst festgelegt sind.

timeout
int

Legt das serverseitige Timeout für den Vorgang in Sekunden fest. Weitere Informationen finden Sie unter https://learn.microsoft.com/en-us/rest/api/storageservices/setting-timeouts-for-queue-service-operations. Dieser Wert wird auf dem Client nicht nachverfolgt oder überprüft. Informationen zum Konfigurieren clientseitiger Netzwerktimeouts finden Sie hier.

Beispiele

Legen Sie eine Zugriffsrichtlinie für die Warteschlange fest.


   # 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

Legt benutzerdefinierte Metadaten für die angegebene Warteschlange fest.

Metadaten werden der Warteschlange als Name-Wert-Paare zugeordnet.

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

Parameter

metadata
Optional[Dict[str, str]]
Erforderlich

Ein Diktat, das Name-Wert-Paare enthält, die der Warteschlange als Metadaten zugeordnet werden sollen.

timeout
int

Legt das serverseitige Timeout für den Vorgang in Sekunden fest. Weitere Informationen finden Sie unter https://learn.microsoft.com/en-us/rest/api/storageservices/setting-timeouts-for-queue-service-operations. Dieser Wert wird auf dem Client nicht nachverfolgt oder überprüft. Informationen zum Konfigurieren clientseitiger Netzwerktimeouts finden Sie hier.

Gibt zurück

Ein Wörterbuch mit Antwortheadern.

Rückgabetyp

Beispiele

Legen Sie Metadaten für die Warteschlange fest.


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

update_message

Updates das Sichtbarkeitstimeout einer Nachricht. Sie können diesen Vorgang auch verwenden, um den Inhalt einer Nachricht zu aktualisieren.

Dieser Vorgang kann verwendet werden, um die Sichtbarkeit einer Warteschlangennachricht kontinuierlich zu erweitern. Diese Funktionalität kann nützlich sein, wenn eine Workerrolle eine Warteschlangennachricht "leasen" soll. Wenn beispielsweise eine Workerrolle aufruft receive_messages und erkennt, dass sie mehr Zeit zum Verarbeiten einer Nachricht benötigt, kann sie die Sichtbarkeit der Nachricht kontinuierlich erweitern, bis sie verarbeitet wird. Wenn die Verarbeitung durch die Workerrolle fehlschlägt, wird die Nachricht schließlich wieder sichtbar, und sie kann von einer anderen Workerrolle verarbeitet werden.

Wenn das Feld schlüssel-encryption-key für das lokale Dienstobjekt festgelegt ist, verschlüsselt diese Methode den Inhalt vor dem Hochladen.

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

Parameter

message
str oder QueueMessage
Erforderlich

Das Nachrichtenobjekt oder die ID, die die zu aktualisierende Nachricht identifiziert.

pop_receipt
str
Erforderlich

Ein gültiger Abrufbestätigungswert, der von einem früheren Aufruf des receive_messages-Vorgangs oder des update_message-Vorgangs zurückgegeben wurde.

content
Optional[object]
Erforderlich

Nachrichteninhalt. Der zulässige Typ wird durch die für den Dienst festgelegte encode_function bestimmt. Der Standardwert ist str.

visibility_timeout
int

Gibt den neuen Sichtbarkeitstimeoutwert in Sekunden relativ zur Serverzeit an. Der neue Wert muss größer oder gleich 0 sein und darf nicht größer als 7 Tage sein. Das Sichtbarkeitstimeout einer Nachricht darf nicht auf einen Wert festgelegt werden, der nach der Ablaufzeit liegt. Eine Nachricht kann aktualisiert werden, bis sie gelöscht wurde oder abgelaufen ist. Das Nachrichtenobjekt oder die Nachrichten-ID, die die zu aktualisierende Nachricht identifiziert.

timeout
int

Legt das serverseitige Timeout für den Vorgang in Sekunden fest. Weitere Informationen finden Sie unter https://learn.microsoft.com/en-us/rest/api/storageservices/setting-timeouts-for-queue-service-operations. Dieser Wert wird auf dem Client nicht nachverfolgt oder überprüft. Informationen zum Konfigurieren clientseitiger Netzwerktimeouts finden Sie hier.

Gibt zurück

Ein QueueMessage-Objekt. Zur Vereinfachung wird dieses Objekt auch mit dem Inhalt aufgefüllt, obwohl er nicht vom Dienst zurückgegeben wird.

Rückgabetyp

Beispiele

Aktualisieren sie eine Nachricht.


   # 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")

Attribute

api_version

Die Version der Speicher-API, die für Anforderungen verwendet wird.

Rückgabetyp

str

location_mode

Der Standortmodus, den der Client derzeit verwendet.

Standardmäßig ist dies "primär". Zu den Optionen gehören "primär" und "sekundär".

Rückgabetyp

str

primary_endpoint

Die vollständige URL des primären Endpunkts.

Rückgabetyp

str

primary_hostname

Der Hostname des primären Endpunkts.

Rückgabetyp

str

secondary_endpoint

Die vollständige url des sekundären Endpunkts, falls konfiguriert.

Wenn nicht verfügbar, wird ein ValueError ausgelöst. Wenn Sie einen sekundären Hostnamen explizit angeben möchten, verwenden Sie das optionale secondary_hostname Schlüsselwort (keyword) Argument für die Instanziierung.

Rückgabetyp

str

Ausnahmen

secondary_hostname

Der Hostname des sekundären Endpunkts.

Wenn nicht verfügbar, lautet dies Keine. Wenn Sie einen sekundären Hostnamen explizit angeben möchten, verwenden Sie das optionale secondary_hostname Schlüsselwort (keyword) Argument für die Instanziierung.

Rückgabetyp

url

Die vollständige Endpunkt-URL für diese Entität, einschließlich des SAS-Tokens, falls verwendet.

Dies kann abhängig vom aktuellen location_modeentweder der primäre Endpunkt oder der sekundäre Endpunkt sein. :returns: Die vollständige Endpunkt-URL für diese Entität, einschließlich des SAS-Tokens, falls verwendet. :rtype: str