Saltar al contenido

Azure Service Bus: la mejor manera de implementar la política de reintentos exponenciales para los mensajes que no se procesan

Solución:

No hay forma de establecer un retroceso exponencial en la configuración del bus de servicio. He experimentado el mismo problema y he hecho lo siguiente:

  1. Saque el mensaje de la cola y marque el mensaje como recibido.
  2. Realice el procesamiento dentro de un bloque try / catch. Si hay una excepción, ponga en cola un nuevo mensaje con una entrega programada en un momento determinado en el futuro.

Hemos empaquetado nuestra carga útil de Service Bus Message Queue en una clase que especifica el número de intentos de entrega. Multiplicamos el número de intentos de entrega por una constante, luego agregamos ese número a la fecha y hora actual para la entrega programada en el futuro. Una vez superado el número de intentos de entrega que queremos intentar, enviamos explícitamente el mensaje a letra muerta.

Editar 7-17-2020 Considere usar Azure Durable Task Framework, que tiene una política de reintento personalizable incorporada.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *