Domanda

Stiamo progettando di utilizzare NServiceBus nella nostra applicazione per l'invio dei messaggi. Nel nostro caso, ogni messaggio è timeToLive proprietà, definendo periodo di tempo, in cui il messaggio deve essere elaborato.

Per il caso se la gestione dei messaggi non ha avuto successo nel primo tentativo, il nostro piano è quello di spostarlo in specifiche stoccaggio dei tentativi (coda tentativi) e poi riprovare messaggio (con qualche timeout tra i tentativi) mentre è gestito con successo o timeToLive è scaduto.

Nel caso in cui timeToLive e 'scaduta, abbiamo in programma di registrare il contenuto del messaggio e scartare il messaggio.

In realtà, questo comportamento tentativi è principalmente determinata dal protocollo che stiamo implementando.

C'è qualche modi per raggiungere un tale comportamento con NServiceBus? Vedo, che i messaggi senza successo va a specifiche error queue. E 'possibile creare un bus separato, indicando errore coda?

È stato utile?

Soluzione

Vorrei suggerire che si dispone di un processo separato che controlla la coda di errore eseguire tentativi secondo la logica che si descrive. Date un'occhiata allo strumento ReturnToSourceQueue che viene fornito con NServiceBus per l'ispirazione:

http://nservicebus.svn.sourceforge.net/viewvc/nservicebus/trunk/src/tools/management/Errors/ReturnToSourceQueue/NServiceBus.Tools.Management.Errors.ReturnToSourceQueue/Class1 cs? view = markup

Ho un post sul blog su come gestire gli errori che potrebbero dare alcune idee pure: http://andreasohlund.net/2010/03 / 15 / ErrorHandling-in-a-messaggio-oriented-mondo /

Spero che questo aiuti!

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top