Erhalte Fehler-Ausnahme in der @HystrixCommand Fallback-Methode

9

Gibt es eine Möglichkeit, den Grund dafür zu finden, dass HystrixCommand fehlgeschlagen ist, wenn die Annotation @HystrixCommand in einer Spring Boot-Anwendung verwendet wird? Es sieht so aus, als ob Sie, wenn Sie Ihre eigene HystrixCommand implementieren, Zugriff auf die getFailedExecutionException haben, aber wie können Sie darauf zugreifen, wenn Sie die Annotation verwenden? Ich würde gerne in der Fallback-Methode verschiedene Dinge basierend auf dem Typ der aufgetretenen Ausnahme machen können. Ist das möglich?

Ich habe einen Hinweis gesehen HystrixRequestContext.initializeContext() , aber HystrixRequestContext gibt Ihnen keinen Zugriff auf irgendetwas. Gibt es eine andere Möglichkeit, diesen Kontext zu verwenden, um auf die Ausnahmen zuzugreifen?

    
Andrew Serff 28.09.2015, 19:49
quelle

4 Antworten

7

Ich habe keine Möglichkeit gefunden, die Ausnahme mit Anmerkungen zu bekommen, aber das Erstellen meines eigenen Befehls funktionierte für mich wie folgt:

%Vor%

Hoffentlich hilft das auch anderen.

    
Andrew Serff 29.09.2015, 16:15
quelle
26

Fügen Sie der Fallback-Methode einfach einen Throwable-Parameter hinzu und er erhält die Ausnahme, die der ursprüngliche Befehl erzeugt hat.

Von Ссылка

%Vor%     
MattJ 07.03.2016 02:04
quelle
2

Ich konnte keine Möglichkeit finden, die Ausnahme mit den Annotationen zu erhalten, aber ich habe HystrixPlugins gefunden, mit dem Sie HystrixCommandExecutionHook registrieren können und Sie können genau die Ausnahme in diesem erhalten:

%Vor%

Die Befehlsinstanz ist ein GenericCommand .

    
Ákos Ratku 29.09.2015 12:29
quelle
1

Meistens benutze nur getFailedExecutionException (). getMessage () gab mir Nullwerte.

%Vor%

das gibt mir immer bessere Ergebnisse.

    
Seetharamani Tmr 01.12.2016 14:51
quelle

Tags und Links