Immer wenn unser Code eine Ausnahme auslöst, die com.netflix.hystrix.exception.HystrixRuntimeException: MyClass timed-out and fallback failed.
lautet, müssen wir uns immer selbst überlegen, ob das Problem darin besteht, dass Hystrix korrekt konfiguriert ist. Eine einfache Möglichkeit, diese Frage zu beantworten, wäre, wenn das Protokoll sagt, wie lange es gedauert hat, bis der Hystrix-Thread ausgeführt wurde, bevor er fehlerhaft war. Wenn es also 1000ms heißt, wissen wir, dass Hystrix nicht richtig konfiguriert ist (weil das die Standardeinstellung ist) und wenn es 5000ms heißt, wissen wir, dass es so konfiguriert ist, wie wir es wollen.Wenn Hystrix ausläuft, wie drucken Sie die benötigte Zeit aus?
0
A
Antwort
1
Sie können etwas tun:
command.getExecutionTimeInMilliseconds()
diese Methode erfahren Sie, wie viele Sekunden Ihre run-Methode, in einem Timeout zu erfassen nahm man dies in einem Try-Catch in Ihrem Befehlsklasse wickeln kann
@Override
protected HttpResponse run() throws Exception {
try {
return executeSomeCall();
} catch (Exception e) {
System.out.println(getExecutionTimeInMilliseconds());
throw e;
}
}
oder außerhalb auf den Aufruf
try {
HttpResponse response = command.execute();
return response;
}
catch (HystrixRuntimeException e) {
command.getExecutionTimeInMilliseconds() // do something with the info
}
einen Punkt nur, wenn Sie u Die Threads-Strategie ist in Ordnung, aber wenn Sie Semaphor verwenden, wird die Zeitüberschreitung nur auftreten, nachdem Sie eine Antwort erhalten haben. sogar, dass Ihr Timeout 1000 ms beträgt und die Anforderung 5000 ms dauerte. hystryx wartet 5000 ms, um Ihnen einen Zeitüberschreitungsfehler zu geben, und die getExecutionTimeInMilliseconds wird Ihnen 1000 ms zurückgeben.
Verwandte Themen
- 1. Benötigte Zeit für einen Prozess
- 2. Hystrix Konfiguration
- 3. Wie drucken Sie Wörter mit etwas Zeit zwischen Buchstaben? (Python)
- 4. Wie finde ich welchen Prozess Speicher ausläuft
- 5. Was passiert, wenn eine automatisch inkrementierende Spalte ausläuft?
- 6. Laravel - Automatische Benötigte Schnittstellen Injizieren Wenn Sie manuell eine Klasse
- 7. mysql Abfrage benötigte
- 8. Jhipster Micro und Hystrix
- 9. Wie drucken Sie die wiederholten Zeilen korrekt?
- 10. Wenn die Zeit abgelaufen ist
- 11. Wie drucken Sie eine IEEE754-Nummer (ohne printf) aus?
- 12. Berechnen Sie die benötigte Größe für ein TLabel
- 13. eine nicht mehr benötigte Boxen aus aC# Ausdruck konvertieren Entfernen
- 14. Hystrix Execution Patterns
- 15. Kann ich die benötigte Zeit für die Berichterstellung mit Macros oder UFT oder iMacros verfolgen?
- 16. Hystrix Anforderungscaching anhand des Beispiels
- 17. Zeitüberschreitung für die Anforderung mit Netflix Feign und Hystrix
- 18. TD Breite - die minimal benötigte CSS
- 19. Harte Zeit Drucken Strukturelemente mit einer Funktion
- 20. Drucken Sie die letzte Zeile aus einer Liste von Datenrahmen
- 21. Drucken Sie die ausgewählten Optionen aus dem jquery-Plugin
- 22. Holen Sie sich die Zeit aus einer Datumszeichenkette
- 23. Angular 2 benötigte Bibliotheken
- 24. Elegante Zeit drucken in C++ 11
- 25. Machen Sie Kalender-Datei, wenn die Zeit in Tagen ist
- 26. bestimmen Sie die Zeit, wenn das Windows-System aus dem Schlaf aufgeweckt wird
- 27. Finden Sie die nächste Zeit aus einer Liste von Zeiten
- 28. Python: Extrahieren von Sätzen aus Linie - Regex benötigte auf Kriterien
- 29. JSF. URL-Rewriting Lösung benötigte
- 30. ETL - Abfrage benötigte