6 Stimmen

NServiceBus Wiederholungsverzögerung

Was ist der optimale Weg, um NServiceBus zu konfigurieren/codieren, um das Wiederholen von Nachrichten zu verzögern?

In seiner Standardkonfiguration erfolgt das Wiederholen fast sofort bis zur Anzahl der in der Konfigurationsdatei definierten Versuche. Ich würde idealerweise nach einer Stunde usw. erneut versuchen.

Außerdem, wie funktioniert HandleCurrentMessageLater()? Auf was bezieht sich der Aspekt Later?

6voto

Andreas Öhlund Punkte 5263

Die NSB-Wiederholungen dienen dazu, vorübergehende Probleme wie Deadlocks usw. zu beheben. Längere Wiederholungen werden am besten behandelt, indem man einen weiteren Prozess erstellt, der die Fehlerwarteschlange überwacht und sie in das Quellwarteschlange zurückstellt, in dem Intervall, das Ihnen beliebt. Schauen Sie sich das ReturnToSourceQueue.exe das mit NSB geliefert wird, als Referenz an.

Bearbeitung: NServiceBus unterstützt das jetzt, wir nennen es Zweite-Ebenen-Wiederholungen, siehe http://docs.particular.net/ für weitere Details

4voto

David Boike Punkte 18246

Hier ist ein Blogbeitrag darüber, warum NServiceBus keine Wiederholungsverzögerung enthält, den ich nach dem Stellen dieser gleichen Frage an Udi in seinem Kurs zur Architektur verteilter Systeme geschrieben habe:

NServiceBus Wiederholungen: Warum keine Rückverschiebung?

Und hier ist ein Diskussionsstrang, der einige der Punkte abdeckt, die beim Aufbau eines Fehlerwartemonitors/Wiederholungs-Endpunkts zu beachten sind:

http://tech.groups.yahoo.com/group/nservicebus/message/10964

Was HandleCurrentMessageLater() betrifft, bewirkt dies lediglich, dass die aktuelle Nachricht wieder ans Ende der Queue gestellt wird. Wenn keine anderen Nachrichten warten, wird sie sofort erneut verarbeitet.

4voto

SDShooter Punkte 93

Ab NServiceBus 3.2.1 bieten sie eine Out-of-the-Box-Lösung zur Behandlung von Back-Off-Verzögerungen im Falle aufeinanderfolgender Nachrichtenausfälle an. Der zuvor vorhandene Wiederholungsmechanismus wiederholt Ausfälle weiterhin ohne Verzögerung, um Fälle wie Datenbank-Sperren, schnell selbstheilende Netzwerkprobleme usw. zu behandeln.

Sobald eine Nachricht die konfigurierte Anzahl von Wiederholungen erreicht hat, wird die Nachricht in eine "Second Level Retry"-Warteschlange verschoben. Diese Warteschlange, wie unten konfiguriert, wird nach einer Verzögerung von 10, 20 und 30 Sekunden wiederholt, bevor die Nachricht in die konfigurierte Fehlerwarteschlange verschoben wird. Sie können diese Werte frei ändern, um sie besser an Ihre Umgebung anzupassen.

Sie können auch diesen Link überprüfen: http://docs.particular.net/nservicebus/second-level-retries

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X