Es wird in der Sturmdokumentation erwähnt, dass der Sturm das Tupel wiederholt, dessen Verarbeitung abgelaufen ist. Meine Frage ist, ob der Sturm dies automatisch tut (ohne fail() auf dem Ursprungsauslauf) oder ob es eher die Verantwortung des Ursprungsauslaufs ist, das Tupel wiederzugeben (der fail() wird aufgerufen und die Wiederholung sollte innerhalb oder sogar irgendwo extern implementiert werden)Gibt es ein Sturmwiederholungstupel, dessen Verarbeitung abgelaufen ist?
Antwort
Um bei einem Timeout eine ordnungsgemäße Wiedergabe zu erhalten, müssen Sie das Tupel mit einer ID verankern, wenn Sie es aus dem Auslauf ausstoßen. Wenn das Zeitlimit auftritt, wird alles, was Sie als Anker verwendet haben, an die fail-Methode zurückgegeben (fail (object anchorId)). Jetzt können Sie die anchorId des failed/timedout Tupel zur Wiederholung verwenden oder etwas anderes, was Sie mit dem Timeout-Tupel machen wollen. Jede Anker-ID muss eindeutig sein. Ein Beispiel für eine Anker-ID ist eine Datenbank-ID. Wenn das Tupel fehlschlägt, können Sie die Datenbank-ID verwenden, um Ihr Tupel neu zu erstellen und erneut zu emittieren. Um Ihre Frage zu beantworten, müssen Sie Ihre Replay-Logik innerhalb des Fehlers haben und Sie können die AnchorId verwenden, um Ihr Tupel neu zu erstellen. Hoffe, diese Info hilft
Von http://storm.apache.org/documentation/Guaranteeing-message-processing.html,
wenn das Tupel mal-out Storm rufen Sie die
fail
Methode auf demSpout
ja So wird fail
aufgerufen werden.
- 1. Zählt QTimer weiter, sobald es abgelaufen ist?
- 2. In JQuery gibt es eine Möglichkeit, Effekte in Warteschlange einzutreten, nachdem ein Zeitlimit abgelaufen ist?
- 3. Gibt es eine Möglichkeit, ein mehrdimensionales Array zu durchlaufen, ohne dessen Tiefe zu kennen?
- 4. Xcode 7.1 "Die Anfrage ist abgelaufen." Fehler
- 5. Instanziieren Sie ein abgeleitetes Klassenobjekt, dessen Basisklasse ctor privat ist
- 6. VS 2015-Lizenz ist abgelaufen
- 7. Gibt es eine Möglichkeit zu überprüfen, ob oauth Token abgelaufen ist oder nicht?
- 8. Während der Verarbeitung ist ein Fehler aufgetreten.
- 9. System Benutzer Passwort ist abgelaufen
- 10. Verarbeitung: Verwirrung mit UnHex, gibt es einen einfacheren Weg?
- 11. Ist es möglich, eine Variable zu verwenden, um ein Objekt aufzurufen, dessen Name dem Variablenwert entspricht?
- 12. So erhalten Sie ein Element, dessen Index in PROTRACTOR ist
- 13. Wenn die Zeit abgelaufen ist
- 14. DNU Restore gibt viele "HTTP-Anforderung abgelaufen"
- 15. Kann ich mit WiX ein MSI erstellen, dessen einziger Zweck es ist, die Software zu deinstallieren?
- 16. Wie überprüft man, ob ein Datum abgelaufen ist (PHP)
- 17. Gibt es ein Speicherleck?
- 18. Ihre Entwicklerlizenz ist abgelaufen (Windows 8)
- 19. Gibt es ein Formularübermittlungsmuster?
- 20. Wie wird benachrichtigt, wenn ein Redis-Schlüssel abgelaufen ist?
- 21. Ansicht ändern, nachdem ein bestimmtes Datum abgelaufen ist
- 22. Was bedeutet ein Element in Ehcache abgelaufen
- 23. Gibt es ein Android-Entwurfsmuster für die Verarbeitung mehrerer Fragmente in einer einzelnen Aktivität?
- 24. Gibt es einen Vorteil, ein C# -Feld schreibgeschützt zu machen, wenn es angemessen ist?
- 25. Refreshing-Seite, wenn der Countdown abgelaufen ist
- 26. Xcode 6.4 Export Adhoc "Session ist abgelaufen"
- 27. Gibt es ein Java-Komprimierungsprogramm
- 28. Gibt es ein OrderedDict-Verständnis?
- 29. Swift Alamofire beendet, wenn Anfrage abgelaufen ist
- 30. Gibt es ein vsVim Benutzerhandbuch?
Gibt es eine Möglichkeit zu wissen, welche Schraube in der Fail() Methode des Spout fehlgeschlagen ist? Grundsätzlich möchte ich bolt-spezifische Informationen im Tupel senden, während ack() oder fail(). Wie kann das gemacht werden? –