2012-03-26 5 views
5

El sistema de "reintento" con NServiceBus es excelente. Funciona de maravilla para garantizar que cosas pequeñas como cerraduras muertas no nos arruinen.¿Hay alguna manera de decirle a NServiceBus que no vuelva a intentar un mensaje?

Sin embargo, a veces SÉ que un mensaje es malo. Malo en el sentido de que ninguna cantidad de reintentos va a ayudar.

¿Hay alguna manera de decirle NServiceBus: "Este mensaje es una mala manzana, moverlo a la cola de errores"? (¿Tiene que omitir los reintentos?)

Respuesta

3

Si está utilizando NSB 3, puede echar un vistazo a la interfaz IManageMessageFailures. Esto le permitirá conectar su funcionalidad, pero esto es después de que el mensaje haya fallado. Si desea obtener el mensaje antes, eche un vistazo a la función Message Mutators. Esto lo conecta tanto en la capa de transporte como en la capa de aplicación.

+0

Por desgracia, la actualización a v3 es un poco complicado para mí en este momento. – Vaccano

+0

No hay problema, entonces me gustaría ver el uso de un Módulo de mensajes. Esto le permitirá tener en sus manos el mensaje antes del procesamiento para expulsarlo. –

1

Llamar a Bus.DoNotContinueDispatchingCurrentMessageToHandlers(); dentro del controlador no es una forma más sencilla de hacer esto?

Cuestiones relacionadas