QueueClient Osztály
Egy adott üzenetsort kezelő ügyfél.
- Öröklődés
-
azure.storage.queue._shared.base_client_async.AsyncStorageAccountHostsMixinQueueClientazure.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 | AsyncTokenCredential | None = None, **kwargs: Any)
Paraméterek
- account_url
- str
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.
- credential
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
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
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
A törölni kívánt üzenetet azonosító üzenetobjektum vagy azonosító.
- pop_receipt
- str
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
- credential
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
- credential
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
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
Ü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]
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
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
A frissíteni kívánt üzenetet azonosító üzenetobjektum vagy azonosító.
- pop_receipt
- str
A vagy update_message művelet korábbi hívásából receive_messages visszaadott érvényes pop-nyugtaérték.
Ü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
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
primary_endpoint
primary_hostname
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
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
Azure SDK for Python