Versuch https://github.com/grammarly/perseverance zu verwenden, warum die folgenden fehlschlägt? Ie. noch der letzte Aufruf erzeugt eine Ausnahmeclojure Wiederholungs Bibliothek Ausdauer Nutzung
(defn fail-n
"returns a function that will fail to process for the first n times is is called"
[n]
(let [cnt (atom 0)]
(fn []
(if (< @cnt n)
(do (swap! cnt inc)
(throw (RuntimeException. "Failed")))
:success))))
(defn safe-fail-n [n]
(p/retriable {
;;:catch [RuntimeException]
} (fail-n n)))
;;(def f (fail-n 1))
(def f (safe-fail-n 2))
(p/retry {;;:strategy (p/constant-retry-strategy 0)
;;:catch [Exception]
;;:log-fn (fn [& a] (println "Retrying "a))
}
(f))
Ich verstehe, warum Ihr Beispiel Arbeit, aber nicht wirklich, warum mein versagt. Ich habe versucht, 'RuntimeException' und sogar' Exception' zu fangen und kommentierte es. – nha
es es nicht genau fangen, * weil * it out kommentiert hat – birdspider
rechts - ich muss hängen etwas abgestanden REPL Zustand gehabt haben um – nha