Megosztás a következőn keresztül:


QueueClient Osztály

Egy adott üzenetsort kezelő ügyfél.

További választható konfigurációért kattintson ide.

Öröklődés
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)

Paraméterek

account_url
str
Kötelező

A tárfiók URL-címe. Ahhoz, hogy létrehozhasson egy ügyfelet, amely a teljes URI-t adja meg az üzenetsornak, használja a from_queue_url classmethod parancsot.

queue_name
str
Kötelező

Az üzenetsor neve.

credential
alapértelmezett érték: None

A hitelesítéshez használt hitelesítő adatok. Ez nem kötelező, ha a fiók URL-címe már rendelkezik SAS-jogkivonattal. Az érték lehet SAS-jogkivonat-sztring, egy AzureSasCredential vagy AzureNamedKeyCredential példánya az azure.core.credentials-ből, egy fiók megosztott hozzáférési kulcsa vagy az azure.identity tokencredentials osztályának egy példánya. Ha az erőforrás URI-ja már tartalmaz SAS-jogkivonatot, a rendszer ezt figyelmen kívül hagyja egy explicit hitelesítő adat javára.

  • kivéve az AzureSasCredential esetében, ahol az ütköző SAS-jogkivonatok ValueError értéket fognak létrehozni. Ha azureNamedKeyCredential-példányt használ, a "név" a tárfiók neve, a "kulcs" pedig a tárfiók kulcsa.
api_version
str

A kérésekhez használandó Storage API-verzió. Az alapértelmezett érték az aktuális SDK-val kompatibilis legújabb szolgáltatásverzió. A régebbi verzióra való beállítás csökkentett funkciókompatibilitást eredményezhet.

secondary_hostname
str

A másodlagos végpont állomásneve.

message_encode_policy

A kimenő üzeneteken használandó kódolási szabályzat. Az alapértelmezett érték nem az üzenetek kódolása. Egyéb lehetőségek: TextBase64EncodePolicy, BinaryBase64EncodePolicy vagy Nincs.

message_decode_policy

A bejövő üzenetekhez használandó dekódolási szabályzat. Az alapértelmezett érték nem az üzenetek dekódolásához szükséges. Egyéb lehetőségek: TextBase64DecodePolicy, BinaryBase64DecodePolicy vagy Nincs.

audience
str

Az Azure Active Directory-hitelesítés jogkivonatainak lekéréséhez használni kívánt célközönség. Csak akkor van hatása, ha a hitelesítő adatok TokenCredential típusúak. Az érték lehet https://storage.azure.com/ (alapértelmezett) vagy https://.queue.core.windows.net.

Példák

Hozza létre az üzenetsor-ügyfelet URL-címmel és hitelesítő adatokkal.


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

Metódusok

clear_messages

Törli az összes üzenetet a megadott üzenetsorból.

close

Ezzel a módszerrel zárja be az ügyfél által megnyitott szoftvercsatornákat. A környezetkezelővel való használathoz nem szükséges használni.

create_queue

Új üzenetsort hoz létre a tárfiókban.

Ha már létezik egy azonos nevű üzenetsor, a művelet resourceExistsError művelettel meghiúsul.

delete_message

Törli a megadott üzenetet.

Általában miután egy ügyfél lekért egy üzenetet az üzenet fogadása művelettel, az ügyfélnek várhatóan fel kell dolgoznia és törölnie kell az üzenetet. Az üzenet törléséhez magának az üzenetobjektumnak vagy két adatelemnek kell lennie: azonosító és pop_receipt. Az azonosító az előző receive_messages műveletből lesz visszaadva. A pop_receipt a legutóbbi receive_messages vagy update_message a műveletből lesz visszaadva. Ahhoz, hogy a delete_message művelet sikeres legyen, a kérelemben megadott pop_receipt meg kell egyeznie a vagy update_message művelet által receive_messages visszaadott pop_receipt.

delete_queue

Törli a megadott üzenetsort és a benne lévő üzeneteket.

Ha egy üzenetsor sikeresen törölve van, a rendszer azonnal megjelöli törlésre, és már nem érhető el az ügyfelek számára. A rendszer később eltávolítja az üzenetsort a Queue szolgáltatásból a szemétgyűjtés során.

Vegye figyelembe, hogy az üzenetsor törlése valószínűleg legalább 40 másodpercet vesz igénybe. Ha a rendszer egy műveletet kísérel meg az üzenetsoron a törlés közben, a rendszer egy <xref:azure.storage.queue.HttpResponseError> üzenetet küld.

from_connection_string

QueueClient létrehozása kapcsolati sztringből.

from_queue_url

Egy ügyfél, amely egy adott üzenetsort használ.

get_queue_access_policy

A megosztott hozzáférésű jogosultságkódokkal használható üzenetsoron megadott tárolt hozzáférési szabályzatok részleteit adja vissza.

get_queue_properties

A megadott üzenetsor összes felhasználó által definiált metaadatait adja vissza.

A visszaadott adatok nem tartalmazzák az üzenetsor üzenetlistáját.

peek_messages

Egy vagy több üzenetet kér le az üzenetsor elejéről, de nem módosítja az üzenet láthatóságát.

Csak a látható üzenetek kérhetők le. Amikor egy üzenetet első alkalommal kér le egy hívással receive_messages, a dequeue_count tulajdonság értéke 1 lesz. Ha a rendszer nem törli, és később ismét lekéri, a dequeue_count tulajdonság növekszik. Az ügyfél ezt az értéket használhatja annak meghatározására, hogy hányszor kérték le az üzeneteket. Vegye figyelembe, hogy a peek_messages hívása nem növeli a dequeue_count értékét, hanem ezt az értéket adja vissza az ügyfélnek az olvasáshoz.

Ha a kulcstitkosítási kulcs vagy a feloldó mező be van állítva a helyi szolgáltatásobjektumon, az üzenetek visszafejtése a visszaadás előtt történik.

receive_message

Eltávolít egy üzenetet az üzenetsor elejéről.

Amikor lekéri az üzenetet az üzenetsorból, a válasz tartalmazza az üzenet tartalmát és egy pop_receipt értéket, amely az üzenet törléséhez szükséges. Az üzenet nem törlődik automatikusan az üzenetsorból, de a lekérés után nem látható a többi ügyfél számára a visibility_timeout paraméter által megadott időintervallumban.

Ha a kulcstitkosítási kulcs vagy a feloldó mező be van állítva a helyi szolgáltatásobjektumon, az üzenet visszafejtése a visszaadás előtt történik.

receive_messages

Eltávolít egy vagy több üzenetet az üzenetsor elejéről.

Amikor lekéri az üzenetet az üzenetsorból, a válasz tartalmazza az üzenet tartalmát és egy pop_receipt értéket, amely az üzenet törléséhez szükséges. Az üzenet nem törlődik automatikusan az üzenetsorból, de a lekérés után nem látható a többi ügyfél számára a visibility_timeout paraméter által megadott időintervallumban. Az iterátor folyamatosan lekéri az üzeneteket, amíg az üzenetsor üres vagy max_messages el nem éri (ha max_messages be van állítva).

Ha a kulcstitkosítási kulcs vagy a feloldó mező be van állítva a helyi szolgáltatásobjektumon, az üzenetek visszafejtése a visszaadás előtt történik.

send_message

Új üzenetet ad hozzá az üzenetsor hátuljához.

A láthatósági időtúllépés azt az időt adja meg, amikor az üzenet láthatatlan lesz. Az időtúllépés lejárta után az üzenet láthatóvá válik. Ha nincs megadva láthatósági időtúllépés, a rendszer a 0 alapértelmezett értékét használja.

Az üzenet élettartamát határozza meg, hogy az üzenet mennyi ideig maradjon az üzenetsorban. Az üzenet az élettartam lejártakor törlődik az üzenetsorból.

Ha a kulcstitkosítás-kulcs mező be van állítva a helyi szolgáltatásobjektumon, ez a metódus a feltöltés előtt titkosítja a tartalmat.

set_queue_access_policy

Beállítja a megosztott hozzáférésű jogosultságkódokkal használható üzenetsor tárolt hozzáférési szabályzatait.

Amikor engedélyeket állít be egy üzenetsorhoz, a rendszer lecseréli a meglévő engedélyeket. Az üzenetsor engedélyeinek frissítéséhez hívja get_queue_access_policy meg az üzenetsorhoz társított összes hozzáférési szabályzat beolvasását, módosítsa a módosítani kívánt hozzáférési szabályzatot, majd hívja meg ezt a függvényt a teljes adatkészlettel a frissítés végrehajtásához.

Ha tárolt hozzáférési szabályzatot hoz létre egy üzenetsoron, akár 30 másodpercig is eltarthat, amíg érvénybe lép. Ebben az időszakban a tárolt hozzáférési szabályzathoz társított közös hozzáférésű jogosultságkód a hozzáférési szabályzat aktívvá válásáig küld egy <xref:azure.storage.queue.HttpResponseError> hibát.

set_queue_metadata

Beállítja a felhasználó által definiált metaadatokat a megadott üzenetsoron.

A metaadatok név-érték párokként kapcsolódnak az üzenetsorhoz.

update_message

Frissítések egy üzenet láthatósági időtúllépését. Ezzel a művelettel frissítheti az üzenetek tartalmát.

Ezzel a művelettel folyamatosan bővíthető az üzenetsorüzenetek láthatatlansága. Ez a funkció akkor lehet hasznos, ha azt szeretné, hogy egy feldolgozói szerepkör "bérletbe" adjon egy üzenetsort. Ha például egy feldolgozói szerepkör felhívja receive_messages és felismeri, hogy több időre van szüksége egy üzenet feldolgozásához, a feldolgozásig folyamatosan kiterjesztheti az üzenet láthatatlanságát. Ha a feldolgozói szerepkör nem működik a feldolgozás során, az üzenet végül ismét láthatóvá válik, és egy másik feldolgozói szerepkör feldolgozhatja azt.

Ha a key-encryption-key mező be van állítva a helyi szolgáltatásobjektumon, ez a módszer a feltöltés előtt titkosítja a tartalmat.

clear_messages

Törli az összes üzenetet a megadott üzenetsorból.

clear_messages(**kwargs: Any) -> None

Paraméterek

timeout
int

Beállítja a művelet kiszolgálóoldali időtúllépését másodpercben. További információ: https://learn.microsoft.com/en-us/rest/api/storageservices/setting-timeouts-for-queue-service-operations. Ez az érték nincs nyomon követve vagy érvényesítve az ügyfélen. Az ügyféloldali hálózati időtúllépések konfigurálásához lásd itt.

Példák

Törli az összes üzenetet.


   queue.clear_messages()

close

Ezzel a módszerrel zárja be az ügyfél által megnyitott szoftvercsatornákat. A környezetkezelővel való használathoz nem szükséges használni.

close()

create_queue

Új üzenetsort hoz létre a tárfiókban.

Ha már létezik egy azonos nevű üzenetsor, a művelet resourceExistsError művelettel meghiúsul.

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

Paraméterek

metadata
Dict[str,str]

Név-érték párokat tartalmazó diktálás, amely metaadatként társítja az üzenetsort. Vegye figyelembe, hogy a metaadatnevek megőrzik azt az esetet, amellyel létrehozták őket, de nem érzéketlenek a be- vagy olvasáskor.

timeout
int

Beállítja a művelet kiszolgálóoldali időtúllépését másodpercben. További információ: https://learn.microsoft.com/en-us/rest/api/storageservices/setting-timeouts-for-queue-service-operations. Ez az érték nincs nyomon követve vagy érvényesítve az ügyfélen. Az ügyféloldali hálózati időtúllépések konfigurálásához lásd itt.

Válaszok

Nincs vagy a cls(válasz) eredménye

Visszatérési típus

Kivételek

StorageErrorException

Példák

Hozzon létre egy üzenetsort.


   queue.create_queue()

delete_message

Törli a megadott üzenetet.

Általában miután egy ügyfél lekért egy üzenetet az üzenet fogadása művelettel, az ügyfélnek várhatóan fel kell dolgoznia és törölnie kell az üzenetet. Az üzenet törléséhez magának az üzenetobjektumnak vagy két adatelemnek kell lennie: azonosító és pop_receipt. Az azonosító az előző receive_messages műveletből lesz visszaadva. A pop_receipt a legutóbbi receive_messages vagy update_message a műveletből lesz visszaadva. Ahhoz, hogy a delete_message művelet sikeres legyen, a kérelemben megadott pop_receipt meg kell egyeznie a vagy update_message művelet által receive_messages visszaadott pop_receipt.

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

Paraméterek

message
str vagy QueueMessage
Kötelező

A törölni kívánt üzenetet azonosító üzenetobjektum vagy azonosító.

pop_receipt
str
Kötelező

Érvényes előugró nyugtaérték, amely a vagy update_messageegy korábbi hívásából származikreceive_messages.

timeout
int

Beállítja a művelet kiszolgálóoldali időtúllépését másodpercben. További információ: https://learn.microsoft.com/en-us/rest/api/storageservices/setting-timeouts-for-queue-service-operations. Ez az érték nincs nyomon követve vagy érvényesítve az ügyfélen. Az ügyféloldali hálózati időtúllépések konfigurálásához lásd itt.

Példák

Üzenet törlése.


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

   # Delete the specified message
   queue.delete_message(msg)

delete_queue

Törli a megadott üzenetsort és a benne lévő üzeneteket.

Ha egy üzenetsor sikeresen törölve van, a rendszer azonnal megjelöli törlésre, és már nem érhető el az ügyfelek számára. A rendszer később eltávolítja az üzenetsort a Queue szolgáltatásból a szemétgyűjtés során.

Vegye figyelembe, hogy az üzenetsor törlése valószínűleg legalább 40 másodpercet vesz igénybe. Ha a rendszer egy műveletet kísérel meg az üzenetsoron a törlés közben, a rendszer egy <xref:azure.storage.queue.HttpResponseError> üzenetet küld.

delete_queue(**kwargs: Any) -> None

Paraméterek

timeout
int

Beállítja a művelet kiszolgálóoldali időtúllépését másodpercben. További információ: https://learn.microsoft.com/en-us/rest/api/storageservices/setting-timeouts-for-queue-service-operations. Ez az érték nincs nyomon követve vagy érvényesítve az ügyfélen. Az ügyféloldali hálózati időtúllépések konfigurálásához lásd itt.

Visszatérési típus

Példák

Üzenetsor törlése.


   queue.delete_queue()

from_connection_string

QueueClient létrehozása kapcsolati sztringből.

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

Paraméterek

conn_str
str
Kötelező

Egy Azure Storage-fiókhoz kapcsolati karakterlánc.

queue_name
str
Kötelező

Az üzenetsor neve.

credential
alapértelmezett érték: None

A hitelesítéshez használt hitelesítő adatok. Ez nem kötelező, ha a fiók URL-címe már rendelkezik SAS-jogkivonattal, vagy a kapcsolati karakterlánc már rendelkezik közös hozzáférési kulcsértékekkel. Az érték lehet SAS-jogkivonat-sztring, egy AzureSasCredential vagy AzureNamedKeyCredential példánya az azure.core.credentials-ből, egy fiók megosztott hozzáférési kulcsa vagy az azure.identity tokencredentials osztályának egy példánya. Az itt megadott hitelesítő adatok elsőbbséget élveznek a kapcsolati karakterlánc. Ha azureNamedKeyCredential-példányt használ, a "név" a tárfiók neve, a "kulcs" pedig a tárfiók kulcsa.

audience
str

Az Azure Active Directory-hitelesítés jogkivonatainak lekéréséhez használni kívánt célközönség. Csak akkor van hatása, ha a hitelesítő adatok TokenCredential típusúak. Az érték lehet https://storage.azure.com/ (alapértelmezett) vagy https://.queue.core.windows.net.

Válaszok

Egy üzenetsor-ügyfél.

Visszatérési típus

Példák

Hozza létre az üzenetsor-ügyfelet a kapcsolati karakterlánc.


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

from_queue_url

Egy ügyfél, amely egy adott üzenetsort használ.

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

Paraméterek

queue_url
str
Kötelező

Az üzenetsor teljes URI-ja, beleértve az SAS-jogkivonatot is, ha használják.

credential
alapértelmezett érték: None

A hitelesítéshez használt hitelesítő adatok. Ez nem kötelező, ha a fiók URL-címe már rendelkezik SAS-jogkivonattal. Az érték lehet SAS-jogkivonat-sztring, egy AzureSasCredential vagy AzureNamedKeyCredential példánya az azure.core.credentials-ből, egy fiók megosztott hozzáférési kulcsa vagy az azure.identity tokencredentials osztályának egy példánya. Ha az erőforrás URI-ja már tartalmaz SAS-jogkivonatot, a rendszer ezt figyelmen kívül hagyja egy explicit hitelesítő adat javára.

  • kivéve az AzureSasCredential esetében, ahol az ütköző SAS-jogkivonatok ValueError értéket fognak létrehozni. Ha azureNamedKeyCredential-példányt használ, a "név" a tárfiók neve, a "kulcs" pedig a tárfiók kulcsa.
audience
str

Az Azure Active Directory-hitelesítés jogkivonatainak lekéréséhez használni kívánt célközönség. Csak akkor van hatása, ha a hitelesítő adatok TokenCredential típusúak. Az érték lehet https://storage.azure.com/ (alapértelmezett) vagy https://.queue.core.windows.net.

Válaszok

Egy üzenetsor-ügyfél.

Visszatérési típus

get_queue_access_policy

A megosztott hozzáférésű jogosultságkódokkal használható üzenetsoron megadott tárolt hozzáférési szabályzatok részleteit adja vissza.

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

Paraméterek

timeout
int

Beállítja a művelet kiszolgálóoldali időtúllépését másodpercben. További információ: https://learn.microsoft.com/en-us/rest/api/storageservices/setting-timeouts-for-queue-service-operations. Ez az érték nincs nyomon követve vagy érvényesítve az ügyfélen. Az ügyféloldali hálózati időtúllépések konfigurálásához lásd itt.

Válaszok

Az üzenetsorhoz társított hozzáférési szabályzatok szótára.

Visszatérési típus

get_queue_properties

A megadott üzenetsor összes felhasználó által definiált metaadatait adja vissza.

A visszaadott adatok nem tartalmazzák az üzenetsor üzenetlistáját.

get_queue_properties(**kwargs: Any) -> QueueProperties

Paraméterek

timeout
int

Az időtúllépési paraméter másodpercben van kifejezve.

Válaszok

Felhasználó által definiált metaadatok az üzenetsorhoz.

Visszatérési típus

Példák

Kérje le a tulajdonságokat az üzenetsoron.


   properties = queue.get_queue_properties().metadata

peek_messages

Egy vagy több üzenetet kér le az üzenetsor elejéről, de nem módosítja az üzenet láthatóságát.

Csak a látható üzenetek kérhetők le. Amikor egy üzenetet első alkalommal kér le egy hívással receive_messages, a dequeue_count tulajdonság értéke 1 lesz. Ha a rendszer nem törli, és később ismét lekéri, a dequeue_count tulajdonság növekszik. Az ügyfél ezt az értéket használhatja annak meghatározására, hogy hányszor kérték le az üzeneteket. Vegye figyelembe, hogy a peek_messages hívása nem növeli a dequeue_count értékét, hanem ezt az értéket adja vissza az ügyfélnek az olvasáshoz.

Ha a kulcstitkosítási kulcs vagy a feloldó mező be van állítva a helyi szolgáltatásobjektumon, az üzenetek visszafejtése a visszaadás előtt történik.

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

Paraméterek

max_messages
int
Kötelező

Egy nem egész szám, amely meghatározza az üzenetsorból betekinteni kívánt üzenetek számát, legfeljebb 32-ig. Alapértelmezés szerint egyetlen üzenet jelenik meg az üzenetsorból ezzel a művelettel.

timeout
int

Beállítja a művelet kiszolgálóoldali időtúllépését másodpercben. További információ: https://learn.microsoft.com/en-us/rest/api/storageservices/setting-timeouts-for-queue-service-operations. Ez az érték nincs nyomon követve vagy érvényesítve az ügyfélen. Az ügyféloldali hálózati időtúllépések konfigurálásához lásd itt.

Válaszok

Objektumok listája QueueMessage . Vegye figyelembe, hogy next_visible_on és pop_receipt nem lesznek kitöltve, mivel a betekintő nem jeleníti meg az üzenetet, és csak a már látható üzeneteket tudja lekérni.

Visszatérési típus

Példák

Betekintés üzeneteket.


   # 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

Eltávolít egy üzenetet az üzenetsor elejéről.

Amikor lekéri az üzenetet az üzenetsorból, a válasz tartalmazza az üzenet tartalmát és egy pop_receipt értéket, amely az üzenet törléséhez szükséges. Az üzenet nem törlődik automatikusan az üzenetsorból, de a lekérés után nem látható a többi ügyfél számára a visibility_timeout paraméter által megadott időintervallumban.

Ha a kulcstitkosítási kulcs vagy a feloldó mező be van állítva a helyi szolgáltatásobjektumon, az üzenet visszafejtése a visszaadás előtt történik.

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

Paraméterek

visibility_timeout
int

Ha nincs megadva, az alapértelmezett érték 30. Az új láthatóság időtúllépési értékét adja meg másodpercben a kiszolgálói időhöz viszonyítva. Az értéknek 1-nél nagyobbnak vagy egyenlőnek kell lennie, és nem lehet nagyobb 7 napnál. Az üzenetek láthatósági időtúllépése nem állítható be a lejárati időnél későbbi értékre. visibility_timeout az élettartamnál kisebb értékre kell állítani.

timeout
int

Beállítja a művelet kiszolgálóoldali időtúllépését másodpercben. További információ: https://learn.microsoft.com/en-us/rest/api/storageservices/setting-timeouts-for-queue-service-operations. Ez az érték nincs nyomon követve vagy érvényesítve az ügyfélen. Az ügyféloldali hálózati időtúllépések konfigurálásához lásd itt.

Válaszok

Az üzenetsorból vagy a Nincs üzenetsorból ad vissza egy üzenetet, ha az üzenetsor üres.

Visszatérési típus

Példák

Egy üzenet fogadása az üzenetsorból.


   # 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

Eltávolít egy vagy több üzenetet az üzenetsor elejéről.

Amikor lekéri az üzenetet az üzenetsorból, a válasz tartalmazza az üzenet tartalmát és egy pop_receipt értéket, amely az üzenet törléséhez szükséges. Az üzenet nem törlődik automatikusan az üzenetsorból, de a lekérés után nem látható a többi ügyfél számára a visibility_timeout paraméter által megadott időintervallumban. Az iterátor folyamatosan lekéri az üzeneteket, amíg az üzenetsor üres vagy max_messages el nem éri (ha max_messages be van állítva).

Ha a kulcstitkosítási kulcs vagy a feloldó mező be van állítva a helyi szolgáltatásobjektumon, az üzenetek visszafejtése a visszaadás előtt történik.

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

Paraméterek

visibility_timeout
int

Ha nincs megadva, az alapértelmezett érték 30. Az új láthatóság időtúllépési értékét adja meg másodpercben a kiszolgálói időhöz viszonyítva. Az értéknek 1-nél nagyobbnak vagy egyenlőnek kell lennie, és nem lehet nagyobb 7 napnál. Az üzenetek láthatósági időtúllépése nem állítható be a lejárati időnél későbbi értékre. visibility_timeout az élettartamnál kisebb értékre kell állítani.

max_messages
int

Egész szám, amely meghatározza az üzenetsorból lekérhető üzenetek maximális számát.

timeout
int

Beállítja a művelet kiszolgálóoldali időtúllépését másodpercben. További információ: https://learn.microsoft.com/en-us/rest/api/storageservices/setting-timeouts-for-queue-service-operations. Ez az érték nincs nyomon követve vagy érvényesítve az ügyfélen. Az ügyféloldali hálózati időtúllépések konfigurálásához lásd itt.

Válaszok

A diktálásszerű üzenetobjektumok üzenet-iterátorát adja vissza.

Visszatérési típus

Példák

Üzenetek fogadása az üzenetsorból.


   # 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

Új üzenetet ad hozzá az üzenetsor hátuljához.

A láthatósági időtúllépés azt az időt adja meg, amikor az üzenet láthatatlan lesz. Az időtúllépés lejárta után az üzenet láthatóvá válik. Ha nincs megadva láthatósági időtúllépés, a rendszer a 0 alapértelmezett értékét használja.

Az üzenet élettartamát határozza meg, hogy az üzenet mennyi ideig maradjon az üzenetsorban. Az üzenet az élettartam lejártakor törlődik az üzenetsorból.

Ha a kulcstitkosítás-kulcs mező be van állítva a helyi szolgáltatásobjektumon, ez a metódus a feltöltés előtt titkosítja a tartalmat.

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

Paraméterek

content
Optional[object]
Kötelező

Üzenet tartalma. Az engedélyezett típust a szolgáltatáson beállított encode_function határozza meg. Az alapértelmezett érték az str. A kódolt üzenet mérete akár 64 KB is lehet.

visibility_timeout
int

Ha nincs megadva, az alapértelmezett érték 0. Az új láthatóság időtúllépési értékét adja meg másodpercben a kiszolgálói időhöz viszonyítva. Az értéknek 0-nál nagyobbnak vagy egyenlőnek kell lennie, és nem lehet nagyobb 7 napnál. Az üzenetek láthatósági időtúllépése nem állítható be a lejárati időnél későbbi értékre. visibility_timeout az élettartamnál kisebb értékre kell állítani.

time_to_live
int

Az üzenet élettartamát adja meg másodpercben. Az élettartam lehet bármilyen pozitív szám, vagy -1 a végtelenben. Ha ez a paraméter nincs megadva, az alapértelmezett élettartam 7 nap.

timeout
int

Beállítja a művelet kiszolgálóoldali időtúllépését másodpercben. További információ: https://learn.microsoft.com/en-us/rest/api/storageservices/setting-timeouts-for-queue-service-operations. Ez az érték nincs nyomon követve vagy érvényesítve az ügyfélen. Az ügyféloldali hálózati időtúllépések konfigurálásához lásd itt.

Válaszok

Egy QueueMessage objektum. Ez az objektum a tartalommal is fel van töltve, bár a szolgáltatás nem adja vissza.

Visszatérési típus

Példák

Üzenetek küldése.


   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

Beállítja a megosztott hozzáférésű jogosultságkódokkal használható üzenetsor tárolt hozzáférési szabályzatait.

Amikor engedélyeket állít be egy üzenetsorhoz, a rendszer lecseréli a meglévő engedélyeket. Az üzenetsor engedélyeinek frissítéséhez hívja get_queue_access_policy meg az üzenetsorhoz társított összes hozzáférési szabályzat beolvasását, módosítsa a módosítani kívánt hozzáférési szabályzatot, majd hívja meg ezt a függvényt a teljes adatkészlettel a frissítés végrehajtásához.

Ha tárolt hozzáférési szabályzatot hoz létre egy üzenetsoron, akár 30 másodpercig is eltarthat, amíg érvénybe lép. Ebben az időszakban a tárolt hozzáférési szabályzathoz társított közös hozzáférésű jogosultságkód a hozzáférési szabályzat aktívvá válásáig küld egy <xref:azure.storage.queue.HttpResponseError> hibát.

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

Paraméterek

signed_identifiers
Dict[str, AccessPolicy]
Kötelező

SignedIdentifier hozzáférési szabályzatok az üzenetsorhoz való társításához. Ez legfeljebb 5 elemet tartalmazhat. Egy üres diktálás törli a szolgáltatásban beállított hozzáférési szabályzatokat.

timeout
int

Beállítja a művelet kiszolgálóoldali időtúllépését másodpercben. További információ: https://learn.microsoft.com/en-us/rest/api/storageservices/setting-timeouts-for-queue-service-operations. Ez az érték nincs nyomon követve vagy érvényesítve az ügyfélen. Az ügyféloldali hálózati időkorlátok konfigurálását itt találja.

Példák

Állítson be egy hozzáférési szabályzatot az üzenetsoron.


   # 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

Beállítja a felhasználó által definiált metaadatokat a megadott üzenetsoron.

A metaadatok név-érték párokként kapcsolódnak az üzenetsorhoz.

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

Paraméterek

metadata
Optional[Dict[str, str]]
Kötelező

Név-érték párokat tartalmazó diktálás, amely metaadatként társítja az üzenetsort.

timeout
int

Beállítja a művelet kiszolgálóoldali időtúllépését másodpercben. További információ: https://learn.microsoft.com/en-us/rest/api/storageservices/setting-timeouts-for-queue-service-operations. Ez az érték nincs nyomon követve vagy érvényesítve az ügyfélen. Az ügyféloldali hálózati időkorlátok konfigurálását itt találja.

Válaszok

A válaszfejlécek szótára.

Visszatérési típus

Példák

Állítsa be a metaadatokat az üzenetsorban.


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

update_message

Frissítések egy üzenet láthatósági időtúllépését. Ezzel a művelettel frissítheti az üzenetek tartalmát.

Ezzel a művelettel folyamatosan bővíthető az üzenetsorüzenetek láthatatlansága. Ez a funkció akkor lehet hasznos, ha azt szeretné, hogy egy feldolgozói szerepkör "bérletbe" adjon egy üzenetsort. Ha például egy feldolgozói szerepkör felhívja receive_messages és felismeri, hogy több időre van szüksége egy üzenet feldolgozásához, a feldolgozásig folyamatosan kiterjesztheti az üzenet láthatatlanságát. Ha a feldolgozói szerepkör nem működik a feldolgozás során, az üzenet végül ismét láthatóvá válik, és egy másik feldolgozói szerepkör feldolgozhatja azt.

Ha a key-encryption-key mező be van állítva a helyi szolgáltatásobjektumon, ez a módszer a feltöltés előtt titkosítja a tartalmat.

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

Paraméterek

message
str vagy QueueMessage
Kötelező

A frissíteni kívánt üzenetet azonosító üzenetobjektum vagy azonosító.

pop_receipt
str
Kötelező

A vagy update_message művelet korábbi hívásából receive_messages visszaadott érvényes pop-nyugtaérték.

content
Optional[object]
Kötelező

Üzenet tartalma. Az engedélyezett típust a szolgáltatásban beállított encode_function határozza meg. Az alapértelmezett érték az str.

visibility_timeout
int

Az új láthatóság időtúllépési értékét adja meg másodpercben a kiszolgálói időhöz viszonyítva. Az új értéknek 0-nál nagyobbnak vagy egyenlőnek kell lennie, és nem lehet nagyobb 7 napnál. Az üzenetek láthatósági időtúllépése nem állítható a lejárati időnél későbbi értékre. Az üzenetek mindaddig frissíthetők, amíg el nem törölték vagy lejárt. A frissíteni kívánt üzenetet azonosító üzenetobjektum vagy üzenetazonosító.

timeout
int

Beállítja a művelet kiszolgálóoldali időtúllépését másodpercben. További információ: https://learn.microsoft.com/en-us/rest/api/storageservices/setting-timeouts-for-queue-service-operations. Ez az érték nincs nyomon követve vagy érvényesítve az ügyfélen. Az ügyféloldali hálózati időkorlátok konfigurálását itt találja.

Válaszok

Egy QueueMessage objektum. A kényelem érdekében ez az objektum is feltöltődik a tartalommal, bár a szolgáltatás nem adja vissza.

Visszatérési típus

Példák

Üzenet frissítése.


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

Attribútumok

api_version

A kérésekhez használt Storage API verziója.

Visszatérési típus

str

location_mode

Az ügyfél által jelenleg használt hely mód.

Alapértelmezés szerint ez lesz az "elsődleges". A beállítások közé tartozik az "elsődleges" és a "másodlagos".

Visszatérési típus

str

primary_endpoint

A teljes elsődleges végpont URL-címe.

Visszatérési típus

str

primary_hostname

Az elsődleges végpont állomásneve.

Visszatérési típus

str

secondary_endpoint

A teljes másodlagos végpont URL-címe, ha konfigurálva van.

Ha nem érhető el, a rendszer létrehoz egy ValueError értéket. Másodlagos állomásnév explicit megadásához használja az opcionális secondary_hostname kulcsszóargumentumot a példányosításkor.

Visszatérési típus

str

Kivételek

secondary_hostname

A másodlagos végpont állomásneve.

Ha nem érhető el, ez Nem lesz. Másodlagos állomásnév explicit megadásához használja az opcionális secondary_hostname kulcsszóargumentumot a példányosításkor.

Visszatérési típus

url

Az entitás teljes végponti URL-címe, beleértve az SAS-jogkivonatot is, ha használják.

Ez lehet az elsődleges végpont vagy a másodlagos végpont az aktuálistól location_modefüggően. :returns: Az entitás teljes végponti URL-címe, beleértve az SAS-jogkivonatot is, ha használják. :rtype: str