ServiceBusSender Clase
La clase ServiceBusSender define una interfaz de alto nivel para enviar mensajes a la cola o el tema de Azure Service Bus.
Use el get_<queue/topic>_sender
método de ~azure.servicebus.aio.ServiceBusClient para crear una instancia de ServiceBusSender.
- Herencia
-
azure.servicebus.aio._base_handler_async.BaseHandlerServiceBusSenderazure.servicebus._servicebus_sender.SenderMixinServiceBusSender
Constructor
ServiceBusSender(fully_qualified_namespace: str, credential: AsyncTokenCredential | 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
- AsyncTokenCredential 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 una cola específica de Service Bus a la que se conecta el cliente. Solo se puede proporcionar uno de queue_name o topic_name.
- topic_name
- str
La ruta de acceso del tema específico de Service Bus al que se conecta el cliente. Solo se puede proporcionar uno de queue_name o topic_name.
- logging_enable
- bool
Indica 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 de 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 claves siguientes también pueden estar presentes: "username", "password".
- user_agent
- str
Si se especifica, se agregará delante de la cadena del 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 al 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 sigan pendientes. |
close |
Cierre la conexión del controlador. Si el controlador ya se ha cerrado, esta operación no hará nada. Se puede pasar una excepción opcional para indicar que el controlador se ha apagado debido a un error. |
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 el servicio pueda 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 se bloquea hasta que se recibe la confirmación o se agota el tiempo de espera de 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 único lote. |
cancel_scheduled_messages
Cancele uno o varios mensajes que se hayan programado previamente y que sigan pendientes.
async 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 hay tiempo de espera.
Tipo de valor devuelto
Excepciones
Ejemplos
Cancelación de mensajes programados para enviarse en el futuro
async with servicebus_sender:
await servicebus_sender.cancel_scheduled_messages(sequence_nums)
close
Cierre la conexión del controlador.
Si el controlador ya se ha cerrado, esta operación no hará nada. Se puede pasar una excepción opcional para indicar que el controlador se ha apagado debido a un error.
async 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.
async 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
ServiceBusMessageBatch (objeto)
Tipo de valor devuelto
Excepciones
Ejemplos
Creación de un objeto ServiceBusMessageBatch con un tamaño limitado
async with servicebus_sender:
batch_message = await servicebus_sender.create_message_batch()
batch_message.add_message(ServiceBusMessage("Single message inside batch"))
schedule_messages
Enviar mensaje o varios mensajes que el servicio pueda poner en cola en un momento específico. Devuelve una lista de los números de secuencia de los mensajes en cola.
async schedule_messages(messages: Mapping[str, Any] | ServiceBusMessage | AmqpAnnotatedMessage | Iterable[Mapping[str, Any]] | Iterable[ServiceBusMessage] | Iterable[AmqpAnnotatedMessage], 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 hay tiempo de espera.
Devoluciones
Los números de secuencia de los mensajes puestos en cola.
Tipo de valor devuelto
Excepciones
Ejemplos
Programar un mensaje que se enviará en el futuro
async with servicebus_sender:
scheduled_time_utc = datetime.datetime.utcnow() + datetime.timedelta(seconds=30)
scheduled_messages = [ServiceBusMessage("Scheduled message") for _ in range(10)]
sequence_nums = await servicebus_sender.schedule_messages(scheduled_messages, scheduled_time_utc)
send_messages
Envía mensajes y se bloquea hasta que se recibe la confirmación o se agota el tiempo de espera de 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 único lote.
async send_messages(message: Mapping[str, Any] | ServiceBusMessage | AmqpAnnotatedMessage | Iterable[Mapping[str, Any]] | Iterable[ServiceBusMessage] | Iterable[AmqpAnnotatedMessage] | ServiceBusMessageBatch, *, timeout: float | None = None, **kwargs: Any) -> None
Parámetros
- message
- Union[ServiceBusMessage, ServiceBusMessageBatch, AmqpAnnotatedMessage, List[Union[ServiceBusMessage, AmqpAnnotatedMessage]]]
Mensaje de 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 hay tiempo de espera.
Tipo de valor devuelto
Excepciones
Ejemplos
Enviar mensaje.
async with servicebus_sender:
message_send = ServiceBusMessage("Hello World")
await servicebus_sender.send_messages(message_send)
Atributos
client_identifier
Obtenga el identificador de cliente de ServiceBusSender asociado a la instancia del remitente.
Tipo de valor devuelto
Azure SDK for Python
Comentarios
https://aka.ms/ContentUserFeedback.
Próximamente: A lo largo de 2024 iremos eliminando gradualmente GitHub Issues como mecanismo de comentarios sobre el contenido y lo sustituiremos por un nuevo sistema de comentarios. Para más información, vea:Enviar y ver comentarios de