This page is not created by, affiliated with, or supported by Slack Technologies, Inc.
2018-12-05
Channels
- # adventofcode (246)
- # aleph (5)
- # aws (7)
- # beginners (161)
- # boot (3)
- # calva (42)
- # cider (40)
- # clara (10)
- # cljdoc (7)
- # cljs-dev (40)
- # cljsrn (6)
- # clojure (170)
- # clojure-dev (8)
- # clojure-greece (2)
- # clojure-italy (15)
- # clojure-kc (2)
- # clojure-new-zealand (13)
- # clojure-nl (13)
- # clojure-russia (3)
- # clojure-spec (5)
- # clojure-uk (160)
- # clojurescript (72)
- # clojurex (1)
- # cursive (7)
- # data-science (9)
- # datascript (1)
- # datomic (120)
- # devcards (4)
- # emacs (18)
- # figwheel-main (10)
- # fulcro (34)
- # kaocha (3)
- # luminus (1)
- # lumo (6)
- # music (1)
- # nrepl (23)
- # off-topic (2)
- # pedestal (4)
- # re-frame (42)
- # reagent (36)
- # reitit (10)
- # ring-swagger (21)
- # shadow-cljs (124)
- # spacemacs (6)
- # tools-deps (14)
- # unrepl (3)
- # vim (2)
could anyone recommend me a library for retrying (with exponential backoff) using deferred?
Zach addressed this sort of in this reddit post: https://www.reddit.com/r/Clojure/comments/48lf1a/managing_websocket_stability_issues_with_aleph/ Fairly easy to extend his example with exponential backoff:
(defn reconnect-loop!
[conn-generator]
(let [loop! (fn this [timeout]
(d/chain
(conn-generator)
(fn [conn]
(if conn
(s/on-closed conn this)
(do @(d/future (Thread/sleep (t/seconds timeout)))
(this (* timeout 2)))))))]
(loop! 1)))