ServiceBusSender Clase
La clase ServiceBusSender define una interfaz de alto nivel para enviar mensajes a la cola o tema de Azure Service Bus.
Use el get_<queue/topic>_sender
método ~azure.servicebus.ServiceBusClient para crear una instancia de ServiceBusSender.
- Herencia
-
azure.servicebus._base_handler.BaseHandlerServiceBusSenderazure.servicebus._servicebus_sender.SenderMixinServiceBusSender
Constructor
ServiceBusSender(fully_qualified_namespace: str, credential: TokenCredential | AzureSasCredential | AzureNamedKeyCredential, *, queue_name: str | None = None, topic_name: str | None = None, **kwargs: Any)
Parámetros
- fully_qualified_namespace
- str
Nombre de host completo para el espacio de nombres de Service Bus. El formato del espacio de nombres es: .servicebus.windows.net.
- credential
- TokenCredential o AzureSasCredential o AzureNamedKeyCredential
Objeto de credencial usado para la autenticación que implementa una interfaz determinada para obtener tokens. Acepta objetos de credenciales generados por la biblioteca azure-identity y los objetos que implementan el método *get_token (self, scopes) o, como alternativa, también se puede proporcionar una instancia de AzureSasCredential.
- queue_name
- str
Ruta de acceso de la cola de Service Bus específica a la que se conecta el cliente.
- topic_name
- str
Ruta de acceso del tema específico de Service Bus al que se conecta el cliente.
- logging_enable
- bool
Si se van a generar registros de seguimiento de red en el registrador. El valor predeterminado es false.
- transport_type
- TransportType
Tipo de protocolo de transporte que se usará para comunicarse con el servicio Service Bus. El valor predeterminado es TransportType.Amqp.
- http_proxy
- Dict
Configuración del proxy HTTP. Debe ser un diccionario con las siguientes claves: "proxy_hostname" (valor str) y "proxy_port" (valor int). Además, las siguientes claves también pueden estar presentes: "username", "password".
- user_agent
- str
Si se especifica, se agregará delante de la cadena de agente de usuario integrada.
- client_identifier
- str
Identificador basado en cadenas para identificar de forma única la instancia de cliente. Service Bus lo asociará a algunos mensajes de error para facilitar la correlación de errores. Si no se especifica, se generará un identificador único.
- socket_timeout
- float
Tiempo en segundos que el socket subyacente de la conexión debe esperar al enviar y recibir datos antes de que se agote el tiempo de espera. El valor predeterminado es 0.2 para TransportType.Amqp y 1 para TransportType.AmqpOverWebsocket. Si se producen errores de conexión debido a un tiempo de espera de escritura, es posible que sea necesario pasar un valor mayor que el predeterminado.
Variables
- fully_qualified_namespace
- str
Nombre de host completo para el espacio de nombres de Service Bus. El formato del espacio de nombres es: .servicebus.windows.net.
- entity_name
- str
Nombre de la entidad a la que se conecta el cliente.
Métodos
cancel_scheduled_messages |
Cancele uno o varios mensajes que se hayan programado previamente y que todavía están pendientes. |
close |
Cierre los vínculos del controlador (y la conexión si el controlador usa una conexión independiente). Si el controlador ya se ha cerrado, esta operación no hará nada. |
create_message_batch |
Cree un objeto ServiceBusMessageBatch con el tamaño máximo de todo el contenido restringido por max_size_in_bytes. El max_size no debe ser mayor que el tamaño máximo permitido del mensaje definido por el servicio. |
schedule_messages |
Enviar mensaje o varios mensajes que se van a poner en cola en un momento específico. Devuelve una lista de los números de secuencia de los mensajes en cola. |
send_messages |
Envía mensajes y bloquea hasta que se agota el tiempo de espera de confirmación o la operación. Si se proporcionó una lista de mensajes, intenta enviarlos como un solo lote, iniciando un valor ValueError si no caben en un solo lote. |
cancel_scheduled_messages
Cancele uno o varios mensajes que se hayan programado previamente y que todavía están pendientes.
cancel_scheduled_messages(sequence_numbers: int | List[int], *, timeout: float | None = None, **kwargs: Any) -> None
Parámetros
- timeout
- float
Tiempo de espera total de la operación en segundos, incluidos todos los reintentos. El valor debe ser mayor que 0 si se especifica. El valor predeterminado es None, lo que significa que no se ha agotado el tiempo de espera.
Tipo de valor devuelto
Excepciones
Ejemplos
Cancelación de mensajes programados para enviarse en el futuro
with servicebus_sender:
servicebus_sender.cancel_scheduled_messages(sequence_nums)
close
Cierre los vínculos del controlador (y la conexión si el controlador usa una conexión independiente).
Si el controlador ya se ha cerrado, esta operación no hará nada.
close() -> None
Tipo de valor devuelto
Excepciones
create_message_batch
Cree un objeto ServiceBusMessageBatch con el tamaño máximo de todo el contenido restringido por max_size_in_bytes. El max_size no debe ser mayor que el tamaño máximo permitido del mensaje definido por el servicio.
create_message_batch(max_size_in_bytes: int | None = None) -> ServiceBusMessageBatch
Parámetros
Tamaño máximo de los datos de bytes que puede contener un objeto ServiceBusMessageBatch. De forma predeterminada, el valor viene determinado por el nivel de Service Bus.
Devoluciones
Un objeto ServiceBusMessageBatch
Tipo de valor devuelto
Excepciones
Ejemplos
Creación de un objeto ServiceBusMessageBatch con un tamaño limitado
with servicebus_sender:
batch_message = servicebus_sender.create_message_batch()
batch_message.add_message(ServiceBusMessage("Single message inside batch"))
schedule_messages
Enviar mensaje o varios mensajes que se van a poner en cola en un momento específico. Devuelve una lista de los números de secuencia de los mensajes en cola.
schedule_messages(messages: MessageTypes, schedule_time_utc: datetime, *, timeout: float | None = None, **kwargs: Any) -> List[int]
Parámetros
- messages
- Union[ServiceBusMessage, AmqpAnnotatedMessage, List[Union[ServiceBusMessage, AmqpAnnotatedMessage]]]
Mensaje o lista de mensajes que se van a programar.
- timeout
- float
Tiempo de espera total de la operación en segundos, incluidos todos los reintentos. El valor debe ser mayor que 0 si se especifica. El valor predeterminado es None, lo que significa que no se ha agotado el tiempo de espera.
Devoluciones
Lista de los números de secuencia de los mensajes en cola.
Tipo de valor devuelto
Excepciones
Ejemplos
Programar un mensaje que se va a enviar en el futuro
with servicebus_sender:
scheduled_time_utc = datetime.datetime.utcnow() + datetime.timedelta(seconds=30)
scheduled_messages = [ServiceBusMessage("Scheduled message") for _ in range(10)]
sequence_nums = servicebus_sender.schedule_messages(scheduled_messages, scheduled_time_utc)
send_messages
Envía mensajes y bloquea hasta que se agota el tiempo de espera de confirmación o la operación.
Si se proporcionó una lista de mensajes, intenta enviarlos como un solo lote, iniciando un valor ValueError si no caben en un solo lote.
send_messages(message: MessageTypes | ServiceBusMessageBatch, *, timeout: float | None = None, **kwargs: Any) -> None
Parámetros
- message
- Union[ServiceBusMessage, ServiceBusMessageBatch, AmqpAnnotatedMessage, List[Union[ServiceBusMessage, AmqpAnnotatedMessage]]]
Mensaje serviceBus que se va a enviar.
Tiempo de espera total de la operación en segundos, incluidos todos los reintentos. El valor debe ser mayor que 0 si se especifica. El valor predeterminado es None, lo que significa que no se ha agotado el tiempo de espera.
Tipo de valor devuelto
Excepciones
Ejemplos
Enviar mensaje.
with servicebus_sender:
message_send = ServiceBusMessage("Hello World")
servicebus_sender.send_messages(message_send)
Atributos
client_identifier
Obtenga el client_identifier serviceBusSender asociado a la instancia del remitente.
Tipo de valor devuelto
Azure SDK for Python