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


QueueClient Osztály

Egy adott üzenetsort kezelő ügyfél.

Öröklődés
azure.storage.queue._shared.base_client_async.AsyncStorageAccountHostsMixin
QueueClient
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 | AsyncTokenCredential | 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 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, az AzureSasCredential vagy az 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 mellett.

  • kivéve az AzureSasCredential esetében, ahol az ütköző SAS-jogkivonatok ValueError értéket fognak létrehozni. Ha az AzureNamedKeyCredential egy példányát használja, a "name" legyen 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ő üzenetekhez használandó kódolási szabályzat. Az alapértelmezett beállítás az üzenetek kódolása. Egyéb lehetőségek: <xref:azure.storage.queue.aio.TextBase64EncodePolicy>, <xref:azure.storage.queue.aio.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ára van. Egyéb lehetőségek: <xref:azure.storage.queue.aio.TextBase64DecodePolicy>, <xref:azure.storage.queue.aio.BinaryBase64DecodePolicy> vagy Nincs.

audience
str

Az Azure Active Directory-hitelesítés jogkivonatainak lekéréséhez használandó 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
   )

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


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

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. 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 ilyen nevű üzenetsor, a művelet ResourceExistsError hibával 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ót az előző receive_messages művelet adja vissza. A pop_receipt a legutóbbi receive_messages művelet vagy update_message művelet adja vissza. Ahhoz, hogy a delete_message művelet sikeres legyen, a kérelemben megadott pop_receipt egyeznie kell az vagy update_message művelet által receive_messages visszaadott pop_receipt.

delete_queue

Törli a megadott üzenetsort és az általa tartalmazott ü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.aio.HttpResponseError> üzenetet küld.

from_connection_string

QueueClient létrehozása kapcsolati sztringből.

from_queue_url

Egy adott üzenetsort kezelő ügyfé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ága 1-re van állítva. 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, a rendszer visszafejti az üzeneteket, mielőtt visszaadja őket.

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ése után nem látható a többi ügyfél számára a visibility_timeout paraméter által megadott időtartamig.

Ha a kulcstitkosítási kulcs vagy a feloldó mező be van állítva a helyi szolgáltatásobjektumon, a rendszer visszafejti az üzenetet a visszaadás előtt.

receive_messages

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

Amikor lekér egy ü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ése után nem látható a többi ügyfél számára a visibility_timeout paraméter által megadott időtartamig. 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, a rendszer visszafejti az üzeneteket, mielőtt visszaadja őket.

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 után az üzenet láthatóvá válik. Ha nincs megadva láthatósági időtúllépés, a rendszer az alapértelmezett 0 értéket használja.

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

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.

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.aio.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.

async 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őkorlátok konfigurálását itt találja.

Példák

Törli az összes üzenetet.


   await queue.clear_messages()

close

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

async close()

create_queue

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

Ha már létezik ilyen nevű üzenetsor, a művelet ResourceExistsError hibával meghiúsul.

async 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 különböztetik meg a kis- és nagybetűket a beállításkor 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őkorlátok konfigurálását itt találja.

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.


   await 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ót az előző receive_messages művelet adja vissza. A pop_receipt a legutóbbi receive_messages művelet vagy update_message művelet adja vissza. Ahhoz, hogy a delete_message művelet sikeres legyen, a kérelemben megadott pop_receipt egyeznie kell az vagy update_message művelet által receive_messages visszaadott pop_receipt.

async 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ő

A vagy update_messageegy korábbi hívása receive_messages által visszaadott érvényes előugró nyugtaérték.

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

Üzenet törlése.


   # Get the message at the front of the queue
   messages = queue.receive_messages()
   async for msg in messages:
       # Delete the specified message
       await queue.delete_message(msg)

delete_queue

Törli a megadott üzenetsort és az általa tartalmazott ü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.aio.HttpResponseError> üzenetet küld.

async 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őkorlátok konfigurálását itt találja.

Visszatérési típus

Példák

Üzenetsor törlése.


   await 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 | AsyncTokenCredential | 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, az AzureSasCredential vagy az 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 az AzureNamedKeyCredential egy példányát használja, a "name" legyen 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álandó 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 kapcsolati karakterlánc.


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

from_queue_url

Egy adott üzenetsort kezelő ügyfél.

from_queue_url(queue_url: str, credential: str | Dict[str, str] | AzureNamedKeyCredential | AzureSasCredential | AsyncTokenCredential | 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, az AzureSasCredential vagy az 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 mellett.

  • kivéve az AzureSasCredential esetében, ahol az ütköző SAS-jogkivonatok ValueError értéket fognak létrehozni. Ha az AzureNamedKeyCredential egy példányát használja, a "name" legyen 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álandó 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.

async 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őkorlátok konfigurálását itt találja.

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.

async get_queue_properties(**kwargs: Any) -> QueueProperties

Paraméterek

timeout
int

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

Válaszok

Az üzenetsor felhasználó által definiált metaadatai.

Visszatérési típus

Példák

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


   properties = await queue.get_queue_properties()

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ága 1-re van állítva. 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, a rendszer visszafejti az üzeneteket, mielőtt visszaadja őket.

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

Paraméterek

max_messages
int
Kötelező

Nem nulla egész szám, amely az üzenetsorból betekintendő üzenetek számát adja meg, 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őkorlátok konfigurálását itt találja.

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 = await queue.peek_messages()

   # Peek at the last 5 messages
   messages = await queue.peek_messages(max_messages=5)

   # Print the last 5 messages
   for message in messages:
       print(message.content)

receive_message

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ése után nem látható a többi ügyfél számára a visibility_timeout paraméter által megadott időtartamig.

Ha a kulcstitkosítási kulcs vagy a feloldó mező be van állítva a helyi szolgáltatásobjektumon, a rendszer visszafejti az üzenetet a visszaadás előtt.

async 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ó 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őkorlátok konfigurálását itt találja.

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 = await queue.receive_message()
       message2 = await queue.receive_message()
       # We should see message 3 if we peek
       message3 = await queue.peek_messages()

       if not message1 or not message2 or not message3:
           raise ValueError("One of the messages are None.")

       print(message1.content)
       print(message2.content)
       print(message3[0].content)

receive_messages

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

Amikor lekér egy ü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ése után nem látható a többi ügyfél számára a visibility_timeout paraméter által megadott időtartamig. 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, a rendszer visszafejti az üzeneteket, mielőtt visszaadja őket.

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

Paraméterek

messages_per_page
int

Nem nulla egész szám, amely az üzenetsorból lekérendő üzenetek számát adja meg, legfeljebb 32-ig. Ha kevesebb látható, a rendszer visszaadja a látható üzeneteket. A rendszer alapértelmezés szerint egyetlen üzenetet kér le az üzenetsorból ezzel a művelettel. by_page() az AsyncItemPaged oldal iterátorának megadására használható, ha messages_per_page be van állítva. A next() a következő oldal lekérésére használható.

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ó 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őkorlátok konfigurálását itt találja.

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()
   async for msg in messages:
       print(msg.content)

   # Receive messages by batch
   messages = queue.receive_messages(messages_per_page=5)
   async for msg_batch in messages.by_page():
       async for msg in msg_batch:
           print(msg.content)
           await queue.delete_message(msg)

send_message

Ú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 után az üzenet láthatóvá válik. Ha nincs megadva láthatósági időtúllépés, a rendszer az alapértelmezett 0 értéket használja.

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

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.

async 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ásban beállított encode_function határozza meg. Az alapértelmezett érték az str. A kódolt üzenet mérete legfeljebb 64 KB 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ó 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égtelenhez. 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őkorlátok konfigurálását itt találja.

Válaszok

Egy QueueMessage objektum. 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

Üzenetek küldése.


   await asyncio.gather(
       queue.send_message("message1"),
       queue.send_message("message2", visibility_timeout=30),  # wait 30s before becoming visible
       queue.send_message("message3"),
       queue.send_message("message4"),
       queue.send_message("message5")
   )

set_queue_access_policy

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.aio.HttpResponseError> hibát.

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

Paraméterek

signed_identifiers
Dict[str, AccessPolicy]
Kötelező

Az üzenetsorhoz társítandó SignedIdentifier hozzáférési szabályzatok. 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 üzenetsorban.


   # Create an access policy
   from azure.storage.queue import AccessPolicy, QueueSasPermissions
   access_policy = AccessPolicy()
   access_policy.start = datetime.utcnow() - timedelta(hours=1)
   access_policy.expiry = datetime.utcnow() + timedelta(hours=1)
   access_policy.permission = QueueSasPermissions(read=True)
   identifiers = {'my-access-policy-id': access_policy}

   # Set the access policy
   await queue.set_queue_access_policy(identifiers)

set_queue_metadata

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.

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

Paraméterek

metadata
Optional[Dict[str, Any]]
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'}
   await 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.

async 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
   await queue.send_message("update me")

   # Receive the message
   messages = queue.receive_messages()

   # Update the message
   async for message in messages:
       message = await queue.update_message(
           message,
           visibility_timeout=0,
           content="updated")

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 helyalapú mód.

Alapértelmezés szerint ez az "elsődleges" lesz. A lehetőségek 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

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

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, akkor a Nincs érték jelenik meg. 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