QueueClient Klasse
Ein Client, der mit einer bestimmten Warteschlange interagiert.
Weitere optionale Konfigurationen finden Sie hier.
- Vererbung
-
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)
Parameter
- account_url
- str
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.
- credential
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
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
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
Das Nachrichtenobjekt oder die ID, die die zu löschende Nachricht identifiziert.
- pop_receipt
- str
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
- credential
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
Der vollständige URI für die Warteschlange, einschließlich des SAS-Tokens, falls verwendet.
- credential
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
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
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]
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
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
Das Nachrichtenobjekt oder die ID, die die zu aktualisierende Nachricht identifiziert.
- pop_receipt
- str
Ein gültiger Abrufbestätigungswert, der von einem früheren Aufruf des receive_messages-Vorgangs oder des update_message-Vorgangs zurückgegeben wurde.
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
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
primary_endpoint
primary_hostname
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
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
Azure SDK for Python