Ich möchte eine ernsthafte Wiederholung für den Service-Aktivator nur im Falle einer ConnectionException durchführen, für andere Ausnahmen möchte ich keinen erneuten Versuch oder eine sehr leichte Wiederholung verwenden. Welche Konfiguration kann ich verwenden? Die Essenz meiner Konfiguration ist unten:Ist es möglich, zwei verschiedene Wiederholungsbeans für einen Dienstaktivator zu verwenden, abhängig von einer ausgelösten Ausnahme?
Antwort
Nein, Sie können einen Wiederholungsratschlag nicht zusammen mit anderen verwenden. Die <request-handler-advice-chain>
Strategie besteht darin, einen Rat in einen anderen mit der Reihenfolge zu überführen, wie sie innerhalb der <request-handler-advice-chain>
konfiguriert sind. Also, wenn Sie eine retryAdvice
und dann eine andere erklären, wird die erste nicht erreicht, bis die zweite ihre Arbeit beendet.
sehe ich nicht das ganze Bild noch, wie einfach Ihre Anforderungen zu erreichen, aber ich wirklich sicher, dass Sie mit benutzerdefinierten RetryPolicy
umgehen sollten, in dem Sie eine Ziel Ausnahme über erreichen:
public boolean canRetry(RetryContext context) {
Throwable t = context.getLastThrowable();
...
}
beachten zu diesem nützlichen RetryContext
Objekt.
Es gibt auch interessierten Hook als RetryListener
Abstraktion, mit der Sie einige zusätzliche Attribute in das RetryContext
setzen können. Zum Beispiel in der SI RequestHandlerRetryAdvice
:
public <T, E extends Throwable> boolean open(RetryContext context, RetryCallback<T, E> callback) {
context.setAttribute("message", messageHolder.get());
return true;
}
- 1. Ist es möglich, verschiedene Überladungen von Dereferenzierungsoperator abhängig von der Art der Bereichsbasierte für
- 2. Ist es möglich, zwei .babelrc-Dateien zu verwenden?
- 3. Ist es möglich, einen Pfad für #include zu verwenden?
- 4. Ist es möglich, einen globalen Ausnahme-Hook zu haben?
- 5. Ist es falsch, geschweifte Klammern für verschiedene Zwecke zu verwenden?
- 6. Ist es möglich, einen Unicode "argv" zu verwenden?
- 7. Ist es möglich, Gensim doc2vec für die Klassifizierung zu verwenden
- 8. Ist es möglich, HttpBrowserCapabilities aus einer C# -Konsolenanwendung zu verwenden?
- 9. Ist es möglich, einen Segmentierungsfehler von einer Referenz zu haben?
- 10. Ist es möglich, abhängig von der aktuellen Umgebung mit Behat unterschiedliche Schrittdaten zu verwenden?
- 11. Ist es schlecht, denselben Logger für verschiedene Anwendungen zu verwenden
- 12. Ist es möglich, einen Datensatz als Datensatzelement zu verwenden?
- 13. Bash - ist es möglich -uni für nur eine Spalte einer Zeile zu verwenden?
- 14. Ist es möglich, zwei verschiedene sbt-Versionen für ein Projekt gleichzeitig zu haben
- 15. Ist es möglich, zwei int-Arrays zu verknüpfen, ohne einen Rückgabetyp zu verwenden?
- 16. Ist es möglich, verschiedene Ports für Knoten in einem Cassandra-Cluster zu verwenden?
- 17. Ist es möglich, einen Datenbanktransaktionsparameter zu verfälschen?
- 18. Ist es für einen Bibliotheksbenutzer möglich, C++ - Ausnahmen zu umgehen?
- 19. Ist es möglich, verschiedene Editor-Vorlagen für dasselbe Kendo UI Grid zu verwenden?
- 20. Ist es möglich, Inline-Vorlagen zu verwenden?
- 21. Dynamische Höhe für Popups abhängig vom Inhalt, ist es möglich?
- 22. Ist es möglich, Parallax in einer Facebook App zu verwenden?
- 23. Ist es möglich, das Obsolete-Attribut nur für einen Getter oder Setter einer Eigenschaft zu verwenden?
- 24. Ist es möglich, verschiedene Attribute für rekursive Klassen in F #
- 25. Ist es möglich, einen Konverter in einem Stil zu verwenden?
- 26. Ist es möglich, benutzerdefinierte Datentypen für MOSS-Benutzerprofileigenschaften zu verwenden?
- 27. ist es möglich, denselben SqlProfileProvider für zwei Web-Projekt zu verwenden?
- 28. Ist es möglich, zwei Modelle in einem Controller zu rendern
- 29. Ist es möglich, mehrere Manifest-Dateien für verschiedene Gradle Builds/Flavors zu verwenden?
- 30. Roboter-Framework mit Pabot: ist es möglich, zwei verschiedene Werte zu einer Variablen in zwei Tests zu übergeben
Meinst du ExceptionClassifierRetryPolicy? Wenn ja, muss ich es mit meiner benutzerdefinierten Klasse überschreiben oder kann ich es in XML konfigurieren? –
1. Sie müssen Ihre eigene 'RetryPolicy' implementieren. Ja 'ExceptionClassifierRetryPolicy' kann als Beispiel für Sie dienen. 2. Sie können es im XML später als reguläres '' konfigurieren und es in 'RetryTemplate' Bean injizieren. –