Compartir a través de


QueueClient Clase

Un cliente para interactuar con una cola específica.

Para obtener más configuración opcional, haga clic aquí.

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

Constructor

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

Parámetros

account_url
str
Requerido

Dirección URL de la cuenta de almacenamiento. Para crear un cliente dado el URI completo a la cola, use el from_queue_url método classmethod.

queue_name
str
Requerido

Nombre de la cola.

credential
valor predeterminado: None

Credenciales con las que se va a autenticar. Esto es opcional si la dirección URL de la cuenta ya tiene un token de SAS. El valor puede ser una cadena de token de SAS, una instancia de AzureSasCredential o AzureNamedKeyCredential de azure.core.credentials, una clave de acceso compartido de cuenta o una instancia de una clase TokenCredentials de azure.identity. Si el URI del recurso ya contiene un token de SAS, se omitirá en favor de una credencial explícita.

  • excepto en el caso de AzureSasCredential, donde los tokens de SAS en conflicto generarán un valor ValueError. Si usa una instancia de AzureNamedKeyCredential, "name" debe ser el nombre de la cuenta de almacenamiento y "key" debe ser la clave de la cuenta de almacenamiento.
api_version
str

La versión de la API de storage que se va a usar para las solicitudes. El valor predeterminado es la versión de servicio más reciente que es compatible con el SDK actual. Establecer en una versión anterior puede dar lugar a una compatibilidad de características reducida.

secondary_hostname
str

El nombre de host del punto de conexión secundario.

message_encode_policy

Directiva de codificación que se va a usar en los mensajes salientes. El valor predeterminado no es codificar los mensajes. Otras opciones incluyen TextBase64EncodePolicy, BinaryBase64EncodePolicy o None.

message_decode_policy

Directiva de descodificación que se va a usar en los mensajes entrantes. El valor predeterminado no es descodificar mensajes. Otras opciones incluyen TextBase64DecodePolicy, BinaryBase64DecodePolicy o None.

audience
str

Audiencia que se va a usar al solicitar tokens para la autenticación de Azure Active Directory. Solo tiene un efecto cuando la credencial es de tipo TokenCredential. El valor podría ser https://storage.azure.com/ (valor predeterminado) o https://.queue.core.windows.net.

Ejemplos

Cree el cliente de cola con la dirección URL y la credencial.


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

Métodos

clear_messages

Elimina todos los mensajes de la cola especificada.

close

Este método consiste en cerrar los sockets abiertos por el cliente. No es necesario usarse cuando se usa con un administrador de contextos.

create_queue

Crea una nueva cola en la cuenta de almacenamiento.

Si ya existe una cola con el mismo nombre, se produce un error en la operación con resourceExistsError.

delete_message

Elimina el mensaje especificado.

Normalmente, después de que un cliente recupere un mensaje con la operación de recepción de mensajes, se espera que el cliente procese y elimine el mensaje. Para eliminar el mensaje, debe tener el propio objeto message o dos elementos de datos: id y pop_receipt. El identificador se devuelve de la operación de receive_messages anterior. El pop_receipt se devuelve de la operación o update_message más recientereceive_messages. Para que la operación de delete_message se realice correctamente, el pop_receipt especificado en la solicitud debe coincidir con el pop_receipt devuelto de la receive_messages operación o update_message .

delete_queue

Elimina la cola especificada y los mensajes que contiene.

Cuando una cola se elimina correctamente, se marca inmediatamente para su eliminación y ya no es accesible para los clientes. La cola se quita más tarde del servicio Cola, durante la recolección de elementos no utilizados.

Tenga en cuenta que es probable que la eliminación de una cola tarde al menos 40 segundos en completarse. Si se intenta realizar una operación en la cola mientras se estaba eliminando, se producirá una <xref:azure.storage.queue.HttpResponseError> excepción .

from_connection_string

Cree QueueClient a partir de una cadena de conexión.

from_queue_url

Un cliente para interactuar con una cola específica.

get_queue_access_policy

Devuelve detalles sobre las directivas de acceso almacenadas especificadas en la cola que se pueden usar con firmas de acceso compartido.

get_queue_properties

Devuelve todos los metadatos definidos por el usuario para la cola especificada.

Los datos devueltos no incluyen la lista de mensajes de la cola.

peek_messages

Recupera uno o varios mensajes desde la parte delantera de la cola, pero no modifica la visibilidad del mensaje.

Solo se pueden recuperar los mensajes visibles. Cuando se recupera un mensaje por primera vez con una llamada a receive_messages, su propiedad dequeue_count se establece en 1. Si no se elimina y se recupera posteriormente de nuevo, se incrementa la propiedad dequeue_count. El cliente puede utilizar este valor para determinar cuántas veces se ha recuperado un mensaje. Tenga en cuenta que una llamada a peek_messages no incrementa el valor de dequeue_count, pero devuelve este valor para que el cliente lea.

Si el campo key-encryption-key o solucionador se establece en el objeto de servicio local, los mensajes se descifrarán antes de devolverse.

receive_message

Quita un mensaje de la parte delantera de la cola.

Cuando el mensaje se recupera de la cola, la respuesta incluye el contenido del mensaje y un valor de pop_receipt, que es necesario para eliminar el mensaje. El mensaje no se elimina automáticamente de la cola, pero después de recuperarlo, no es visible para otros clientes durante el intervalo de tiempo especificado por el parámetro visibility_timeout.

Si el campo key-encryption-key o solucionador se establece en el objeto de servicio local, el mensaje se descifrará antes de devolverse.

receive_messages

Quita uno o varios mensajes de la parte delantera de la cola.

Cuando se recupera un mensaje de la cola, la respuesta incluye el contenido del mensaje y un valor de pop_receipt, que es necesario para eliminar el mensaje. El mensaje no se elimina automáticamente de la cola, pero después de recuperarlo, no es visible para otros clientes durante el intervalo de tiempo especificado por el parámetro visibility_timeout. El iterador capturará continuamente los mensajes hasta que la cola esté vacía o max_messages se alcance (si se establece max_messages).

Si el campo key-encryption-key o solucionador se establece en el objeto de servicio local, los mensajes se descifrarán antes de devolverse.

send_message

Agrega un nuevo mensaje a la parte posterior de la cola de mensajes.

El tiempo de espera de visibilidad especifica la hora en que el mensaje será invisible. Una vez agotado el tiempo de espera, el mensaje se hará visible. Si no se especifica un tiempo de espera de visibilidad, se utiliza el valor predeterminado 0.

El período de vida del mensaje especifica cuánto tiempo permanecerá un mensaje en la cola. El mensaje se eliminará de la cola cuando caduque el período de vida.

Si el campo key-encryption-key se establece en el objeto de servicio local, este método cifrará el contenido antes de cargarlo.

set_queue_access_policy

Establece directivas de acceso almacenadas para la cola que se pueden utilizar con firmas de acceso compartido.

Al establecer los permisos para una cola, los permisos existentes se reemplazan. Para actualizar los permisos de la cola, llame get_queue_access_policy a para capturar todas las directivas de acceso asociadas a la cola, modifique la directiva de acceso que desea cambiar y, a continuación, llame a esta función con el conjunto completo de datos para realizar la actualización.

Establecer una directiva de acceso almacenada en una cola puede tardar hasta 30 segundos en aplicarse. Durante este intervalo, una firma de acceso compartido asociada a la directiva de acceso almacenada producirá una <xref:azure.storage.queue.HttpResponseError> excepción hasta que la directiva de acceso se active.

set_queue_metadata

Establece los metadatos definidos por el usuario en la cola especificada.

Los metadatos se asocian con la cola como pares nombre-valor.

update_message

Novedades el tiempo de espera de visibilidad de un mensaje. También puede utilizar esta operación para actualizar el contenido de un mensaje.

Esta operación se puede usar para ampliar continuamente la invisibilidad de un mensaje de cola. Esta funcionalidad puede ser útil si desea que un rol de trabajo "conste" un mensaje de cola. Por ejemplo, si un rol de trabajo llama receive_messages a y reconoce que necesita más tiempo para procesar un mensaje, puede extender continuamente la invisibilidad del mensaje hasta que se procese. Si el rol de trabajo produjera un error durante el procesamiento, el mensaje volvería a estar visible y otro rol de trabajo podría procesarlo.

Si el campo key-encryption-key se establece en el objeto de servicio local, este método cifrará el contenido antes de cargarlo.

clear_messages

Elimina todos los mensajes de la cola especificada.

clear_messages(**kwargs: Any) -> None

Parámetros

timeout
int

Establece el tiempo de espera del lado servidor para la operación en segundos. Para más información, consulte https://learn.microsoft.com/en-us/rest/api/storageservices/setting-timeouts-for-queue-service-operations. Este valor no se realiza un seguimiento ni se valida en el cliente. Para configurar tiempos de espera de red del lado cliente, consulte aquí.

Ejemplos

Borra todos los mensajes.


   queue.clear_messages()

close

Este método consiste en cerrar los sockets abiertos por el cliente. No es necesario usarse cuando se usa con un administrador de contextos.

close()

create_queue

Crea una nueva cola en la cuenta de almacenamiento.

Si ya existe una cola con el mismo nombre, se produce un error en la operación con resourceExistsError.

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

Parámetros

metadata
Dict[str,str]

Un dict que contiene pares nombre-valor que se van a asociar a la cola como metadatos. Tenga en cuenta que los nombres de los metadatos conservan las mayúsculas y minúsculas iniciales, pero no distinguen entre mayúsculas y minúsculas cuando se establecen o se leen.

timeout
int

Establece el tiempo de espera del lado servidor para la operación en segundos. Para más información, consulte https://learn.microsoft.com/en-us/rest/api/storageservices/setting-timeouts-for-queue-service-operations. Este valor no se realiza un seguimiento ni se valida en el cliente. Para configurar tiempos de espera de red del lado cliente, consulte aquí.

Devoluciones

Ninguno o el resultado de cls(response)

Tipo de valor devuelto

Excepciones

StorageErrorException

Ejemplos

Cree una cola.


   queue.create_queue()

delete_message

Elimina el mensaje especificado.

Normalmente, después de que un cliente recupere un mensaje con la operación de recepción de mensajes, se espera que el cliente procese y elimine el mensaje. Para eliminar el mensaje, debe tener el propio objeto message o dos elementos de datos: id y pop_receipt. El identificador se devuelve de la operación de receive_messages anterior. El pop_receipt se devuelve de la operación o update_message más recientereceive_messages. Para que la operación de delete_message se realice correctamente, el pop_receipt especificado en la solicitud debe coincidir con el pop_receipt devuelto de la receive_messages operación o update_message .

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

Parámetros

message
str o QueueMessage
Requerido

Objeto de mensaje o identificador que identifica el mensaje que se va a eliminar.

pop_receipt
str
Requerido

Valor de recibo pop válido devuelto de una llamada anterior a receive_messages o update_message.

timeout
int

Establece el tiempo de espera del lado servidor para la operación en segundos. Para más información, consulte https://learn.microsoft.com/en-us/rest/api/storageservices/setting-timeouts-for-queue-service-operations. Este valor no se realiza un seguimiento ni se valida en el cliente. Para configurar tiempos de espera de red del lado cliente, consulte aquí.

Ejemplos

Elimine un mensaje.


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

   # Delete the specified message
   queue.delete_message(msg)

delete_queue

Elimina la cola especificada y los mensajes que contiene.

Cuando una cola se elimina correctamente, se marca inmediatamente para su eliminación y ya no es accesible para los clientes. La cola se quita más tarde del servicio Cola, durante la recolección de elementos no utilizados.

Tenga en cuenta que es probable que la eliminación de una cola tarde al menos 40 segundos en completarse. Si se intenta realizar una operación en la cola mientras se estaba eliminando, se producirá una <xref:azure.storage.queue.HttpResponseError> excepción .

delete_queue(**kwargs: Any) -> None

Parámetros

timeout
int

Establece el tiempo de espera del lado servidor para la operación en segundos. Para más información, consulte https://learn.microsoft.com/en-us/rest/api/storageservices/setting-timeouts-for-queue-service-operations. Este valor no se realiza un seguimiento ni se valida en el cliente. Para configurar tiempos de espera de red del lado cliente, consulte aquí.

Tipo de valor devuelto

Ejemplos

Elimine una cola.


   queue.delete_queue()

from_connection_string

Cree QueueClient a partir de una cadena de conexión.

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

Parámetros

conn_str
str
Requerido

Una cadena de conexión a una cuenta de Azure Storage.

queue_name
str
Requerido

Nombre de cola.

credential
valor predeterminado: None

Credenciales con las que se va a autenticar. Esto es opcional si la dirección URL de la cuenta ya tiene un token de SAS o el cadena de conexión ya tiene valores de clave de acceso compartido. El valor puede ser una cadena de token de SAS, una instancia de AzureSasCredential o AzureNamedKeyCredential de azure.core.credentials, una clave de acceso compartido de cuenta o una instancia de una clase TokenCredentials de azure.identity. Las credenciales proporcionadas aquí tendrán prioridad sobre las de la cadena de conexión. Si usa una instancia de AzureNamedKeyCredential, "name" debe ser el nombre de la cuenta de almacenamiento y "key" debe ser la clave de la cuenta de almacenamiento.

audience
str

Audiencia que se va a usar al solicitar tokens para la autenticación de Azure Active Directory. Solo tiene un efecto cuando la credencial es de tipo TokenCredential. El valor podría ser https://storage.azure.com/ (valor predeterminado) o https://.queue.core.windows.net.

Devoluciones

Un cliente de cola.

Tipo de valor devuelto

Ejemplos

Cree el cliente de cola a partir de cadena de conexión.


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

from_queue_url

Un cliente para interactuar con una cola específica.

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

Parámetros

queue_url
str
Requerido

Identificador URI completo de la cola, incluido el token de SAS si se usa.

credential
valor predeterminado: None

Credenciales con las que se va a autenticar. Esto es opcional si la dirección URL de la cuenta ya tiene un token de SAS. El valor puede ser una cadena de token de SAS, una instancia de AzureSasCredential o AzureNamedKeyCredential de azure.core.credentials, una clave de acceso compartido de cuenta o una instancia de una clase TokenCredentials de azure.identity. Si el URI del recurso ya contiene un token de SAS, se omitirá en favor de una credencial explícita.

  • excepto en el caso de AzureSasCredential, donde los tokens de SAS en conflicto generarán un valor ValueError. Si usa una instancia de AzureNamedKeyCredential, "name" debe ser el nombre de la cuenta de almacenamiento y "key" debe ser la clave de la cuenta de almacenamiento.
audience
str

Audiencia que se va a usar al solicitar tokens para la autenticación de Azure Active Directory. Solo tiene un efecto cuando la credencial es de tipo TokenCredential. El valor podría ser https://storage.azure.com/ (valor predeterminado) o https://.queue.core.windows.net.

Devoluciones

Un cliente de cola.

Tipo de valor devuelto

get_queue_access_policy

Devuelve detalles sobre las directivas de acceso almacenadas especificadas en la cola que se pueden usar con firmas de acceso compartido.

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

Parámetros

timeout
int

Establece el tiempo de espera del lado servidor para la operación en segundos. Para más información, consulte https://learn.microsoft.com/en-us/rest/api/storageservices/setting-timeouts-for-queue-service-operations. Este valor no se realiza un seguimiento ni se valida en el cliente. Para configurar tiempos de espera de red del lado cliente, consulte aquí.

Devoluciones

Diccionario de directivas de acceso asociadas a la cola.

Tipo de valor devuelto

get_queue_properties

Devuelve todos los metadatos definidos por el usuario para la cola especificada.

Los datos devueltos no incluyen la lista de mensajes de la cola.

get_queue_properties(**kwargs: Any) -> QueueProperties

Parámetros

timeout
int

El parámetro de tiempo de espera se expresa en segundos.

Devoluciones

Metadatos definidos por el usuario para la cola.

Tipo de valor devuelto

Ejemplos

Obtenga las propiedades de la cola.


   properties = queue.get_queue_properties().metadata

peek_messages

Recupera uno o varios mensajes desde la parte delantera de la cola, pero no modifica la visibilidad del mensaje.

Solo se pueden recuperar los mensajes visibles. Cuando se recupera un mensaje por primera vez con una llamada a receive_messages, su propiedad dequeue_count se establece en 1. Si no se elimina y se recupera posteriormente de nuevo, se incrementa la propiedad dequeue_count. El cliente puede utilizar este valor para determinar cuántas veces se ha recuperado un mensaje. Tenga en cuenta que una llamada a peek_messages no incrementa el valor de dequeue_count, pero devuelve este valor para que el cliente lea.

Si el campo key-encryption-key o solucionador se establece en el objeto de servicio local, los mensajes se descifrarán antes de devolverse.

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

Parámetros

max_messages
int
Requerido

Valor entero distinto de cero que especifica el número de mensajes que se deben obtener de la cola, hasta un máximo de 32. De forma predeterminada, con esta operación se obtiene un solo mensaje de la cola.

timeout
int

Establece el tiempo de espera del lado servidor para la operación en segundos. Para más información, consulte https://learn.microsoft.com/en-us/rest/api/storageservices/setting-timeouts-for-queue-service-operations. Este valor no se realiza un seguimiento ni se valida en el cliente. Para configurar tiempos de espera de red del lado cliente, consulte aquí.

Devoluciones

Una lista de objetos QueueMessage. Tenga en cuenta que next_visible_on y pop_receipt no se rellenarán porque peek no extrae el mensaje y solo puede recuperar mensajes ya visibles.

Tipo de valor devuelto

Ejemplos

Vistazo mensajes.


   # 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

Quita un mensaje de la parte delantera de la cola.

Cuando el mensaje se recupera de la cola, la respuesta incluye el contenido del mensaje y un valor de pop_receipt, que es necesario para eliminar el mensaje. El mensaje no se elimina automáticamente de la cola, pero después de recuperarlo, no es visible para otros clientes durante el intervalo de tiempo especificado por el parámetro visibility_timeout.

Si el campo key-encryption-key o solucionador se establece en el objeto de servicio local, el mensaje se descifrará antes de devolverse.

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

Parámetros

visibility_timeout
int

Si no se especifica, el valor predeterminado es 30. Especifica el nuevo valor del tiempo de espera de visibilidad, en segundos, relativo a la hora del servidor. El valor debe ser mayor o igual que 1 y no puede ser mayor que 7 días. El tiempo de espera de visibilidad de un mensaje no puede establecerse en un valor posterior a la hora de expiración. visibility_timeout debe establecerse en un valor menor que el valor de período de vida.

timeout
int

Establece el tiempo de espera del lado servidor para la operación en segundos. Para más información, consulte https://learn.microsoft.com/en-us/rest/api/storageservices/setting-timeouts-for-queue-service-operations. Este valor no se realiza un seguimiento ni se valida en el cliente. Para configurar tiempos de espera de red del lado cliente, consulte aquí.

Devoluciones

Devuelve un mensaje de la cola o Ninguno si la cola está vacía.

Tipo de valor devuelto

Ejemplos

Reciba un mensaje de la cola.


   # 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

Quita uno o varios mensajes de la parte delantera de la cola.

Cuando se recupera un mensaje de la cola, la respuesta incluye el contenido del mensaje y un valor de pop_receipt, que es necesario para eliminar el mensaje. El mensaje no se elimina automáticamente de la cola, pero después de recuperarlo, no es visible para otros clientes durante el intervalo de tiempo especificado por el parámetro visibility_timeout. El iterador capturará continuamente los mensajes hasta que la cola esté vacía o max_messages se alcance (si se establece max_messages).

Si el campo key-encryption-key o solucionador se establece en el objeto de servicio local, los mensajes se descifrarán antes de devolverse.

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

Parámetros

visibility_timeout
int

Si no se especifica, el valor predeterminado es 30. Especifica el nuevo valor del tiempo de espera de visibilidad, en segundos, relativo a la hora del servidor. El valor debe ser mayor o igual que 1 y no puede ser mayor que 7 días. El tiempo de espera de visibilidad de un mensaje no puede establecerse en un valor posterior a la hora de expiración. visibility_timeout debe establecerse en un valor menor que el valor de período de vida.

max_messages
int

Entero que especifica el número máximo de mensajes que se van a recuperar de la cola.

timeout
int

Establece el tiempo de espera del lado servidor para la operación en segundos. Para más información, consulte https://learn.microsoft.com/en-us/rest/api/storageservices/setting-timeouts-for-queue-service-operations. Este valor no se realiza un seguimiento ni se valida en el cliente. Para configurar tiempos de espera de red del lado cliente, consulte aquí.

Devoluciones

Devuelve un iterador de mensajes de objetos Message similares a dict.

Tipo de valor devuelto

Ejemplos

Recibir mensajes de la cola.


   # 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

Agrega un nuevo mensaje a la parte posterior de la cola de mensajes.

El tiempo de espera de visibilidad especifica la hora en que el mensaje será invisible. Una vez agotado el tiempo de espera, el mensaje se hará visible. Si no se especifica un tiempo de espera de visibilidad, se utiliza el valor predeterminado 0.

El período de vida del mensaje especifica cuánto tiempo permanecerá un mensaje en la cola. El mensaje se eliminará de la cola cuando caduque el período de vida.

Si el campo key-encryption-key se establece en el objeto de servicio local, este método cifrará el contenido antes de cargarlo.

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

Parámetros

content
Optional[object]
Requerido

Contenido del mensaje. El tipo permitido viene determinado por el encode_function establecido en el servicio. El valor predeterminado es str. El mensaje codificado puede tener un tamaño de hasta 64 KB.

visibility_timeout
int

Si no se especifica ningún valor, se utiliza el valor predeterminado 0. Especifica el nuevo valor del tiempo de espera de visibilidad, en segundos, relativo a la hora del servidor. El valor debe ser mayor o igual que 0 y no puede ser mayor que 7 días. El tiempo de espera de visibilidad de un mensaje no puede establecerse en un valor posterior a la hora de expiración. visibility_timeout debe establecerse en un valor menor que el valor de período de vida.

time_to_live
int

Especifica el intervalo del período de vida para el mensaje, en segundos. El período de vida puede ser cualquier número positivo o -1 para infinito. Si se omite este parámetro, el período de vida predeterminado es de 7 días.

timeout
int

Establece el tiempo de espera del lado servidor para la operación en segundos. Para más información, consulte https://learn.microsoft.com/en-us/rest/api/storageservices/setting-timeouts-for-queue-service-operations. Este valor no se realiza un seguimiento ni se valida en el cliente. Para configurar tiempos de espera de red del lado cliente, consulte aquí.

Devoluciones

Un objeto QueueMessage. Este objeto también se rellena con el contenido, aunque no se devuelve del servicio.

Tipo de valor devuelto

Ejemplos

Enviar mensajes.


   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

Establece directivas de acceso almacenadas para la cola que se pueden utilizar con firmas de acceso compartido.

Al establecer los permisos para una cola, los permisos existentes se reemplazan. Para actualizar los permisos de la cola, llame get_queue_access_policy a para capturar todas las directivas de acceso asociadas a la cola, modifique la directiva de acceso que desea cambiar y, a continuación, llame a esta función con el conjunto completo de datos para realizar la actualización.

Establecer una directiva de acceso almacenada en una cola puede tardar hasta 30 segundos en aplicarse. Durante este intervalo, una firma de acceso compartido asociada a la directiva de acceso almacenada producirá una <xref:azure.storage.queue.HttpResponseError> excepción hasta que la directiva de acceso se active.

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

Parámetros

signed_identifiers
Dict[str, AccessPolicy]
Requerido

Directivas de acceso SignedIdentifier que se asociarán a la cola. Esto puede contener hasta 5 elementos. Un dict vacío borrará las directivas de acceso establecidas en el servicio.

timeout
int

Establece el tiempo de espera del lado servidor para la operación en segundos. Para más información, consulte https://learn.microsoft.com/en-us/rest/api/storageservices/setting-timeouts-for-queue-service-operations. Este valor no se realiza ni se valida en el cliente. Para configurar los tiempos de espera de red del lado cliente, consulte aquí.

Ejemplos

Establezca una directiva de acceso en la cola.


   # 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

Establece los metadatos definidos por el usuario en la cola especificada.

Los metadatos se asocian con la cola como pares nombre-valor.

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

Parámetros

metadata
Optional[Dict[str, str]]
Requerido

Un dict que contiene pares nombre-valor que se van a asociar a la cola como metadatos.

timeout
int

Establece el tiempo de espera del lado servidor para la operación en segundos. Para más información, consulte https://learn.microsoft.com/en-us/rest/api/storageservices/setting-timeouts-for-queue-service-operations. Este valor no se realiza ni se valida en el cliente. Para configurar los tiempos de espera de red del lado cliente, consulte aquí.

Devoluciones

Diccionario de encabezados de respuesta.

Tipo de valor devuelto

Ejemplos

Establezca metadatos en la cola.


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

update_message

Novedades el tiempo de espera de visibilidad de un mensaje. También puede utilizar esta operación para actualizar el contenido de un mensaje.

Esta operación se puede usar para ampliar continuamente la invisibilidad de un mensaje de cola. Esta funcionalidad puede ser útil si desea que un rol de trabajo "conste" un mensaje de cola. Por ejemplo, si un rol de trabajo llama receive_messages a y reconoce que necesita más tiempo para procesar un mensaje, puede extender continuamente la invisibilidad del mensaje hasta que se procese. Si el rol de trabajo produjera un error durante el procesamiento, el mensaje volvería a estar visible y otro rol de trabajo podría procesarlo.

Si el campo key-encryption-key se establece en el objeto de servicio local, este método cifrará el contenido antes de cargarlo.

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

Parámetros

message
str o QueueMessage
Requerido

Objeto de mensaje o identificador que identifica el mensaje que se va a actualizar.

pop_receipt
str
Requerido

Valor de recepción de confirmación válido devuelto desde una llamada anterior a la operación receive_messages o update_message.

content
Optional[object]
Requerido

Contenido del mensaje. El tipo permitido viene determinado por el encode_function establecido en el servicio. El valor predeterminado es str.

visibility_timeout
int

Especifica el nuevo valor del tiempo de espera de visibilidad, en segundos, relativo a la hora del servidor. El nuevo valor debe ser mayor o igual que 0, y no puede ser mayor de 7 días. El tiempo de espera de visibilidad de un mensaje no puede establecerse en un valor posterior a la hora de expiración. Un mensaje se puede actualizar hasta que se ha eliminado o ha expirado. Objeto de mensaje o identificador de mensaje que identifica el mensaje que se va a actualizar.

timeout
int

Establece el tiempo de espera del lado servidor para la operación en segundos. Para más información, consulte https://learn.microsoft.com/en-us/rest/api/storageservices/setting-timeouts-for-queue-service-operations. Este valor no se realiza ni se valida en el cliente. Para configurar los tiempos de espera de red del lado cliente, consulte aquí.

Devoluciones

Un objeto QueueMessage. Por comodidad, este objeto también se rellena con el contenido, aunque el servicio no lo devuelve.

Tipo de valor devuelto

Ejemplos

Actualice un mensaje.


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

Atributos

api_version

La versión de la API de storage que se usa para las solicitudes.

Tipo de valor devuelto

str

location_mode

Modo de ubicación que el cliente está usando actualmente.

De forma predeterminada, será "principal". Entre las opciones se incluyen "primary" y "secondary".

Tipo de valor devuelto

str

primary_endpoint

Dirección URL completa del punto de conexión principal.

Tipo de valor devuelto

str

primary_hostname

Nombre de host del punto de conexión principal.

Tipo de valor devuelto

str

secondary_endpoint

Dirección URL completa del punto de conexión secundario si está configurada.

Si no está disponible, se generará un valor ValueError. Para especificar explícitamente un nombre de host secundario, use el argumento opcional secondary_hostname palabra clave en la creación de instancias.

Tipo de valor devuelto

str

Excepciones

secondary_hostname

El nombre de host del punto de conexión secundario.

Si no está disponible, será Ninguno. Para especificar explícitamente un nombre de host secundario, use el argumento opcional secondary_hostname palabra clave en la creación de instancias.

Tipo de valor devuelto

url

Dirección URL completa del punto de conexión a esta entidad, incluido el token de SAS si se usa.

Puede ser el punto de conexión principal o el punto de conexión secundario en función del actual location_mode. :returns: la dirección URL completa del punto de conexión a esta entidad, incluido el token de SAS si se usa. :rtype: str