This page is not created by, affiliated with, or supported by Slack Technologies, Inc.
2019-05-10
Channels
- # announcements (4)
- # beginners (111)
- # boot (34)
- # cider (67)
- # cljdoc (10)
- # clojure (90)
- # clojure-dev (37)
- # clojure-europe (3)
- # clojure-gamedev (3)
- # clojure-italy (18)
- # clojure-losangeles (2)
- # clojure-nl (27)
- # clojure-spec (24)
- # clojure-uk (59)
- # clojurescript (41)
- # cursive (32)
- # datomic (31)
- # emacs (21)
- # figwheel (1)
- # figwheel-main (2)
- # fulcro (43)
- # graalvm (6)
- # graphql (3)
- # jobs-discuss (3)
- # kaocha (1)
- # nyc (1)
- # off-topic (22)
- # pathom (10)
- # pedestal (11)
- # re-frame (9)
- # reitit (17)
- # shadow-cljs (15)
- # spacemacs (13)
- # sql (6)
- # testing (5)
- # tools-deps (3)
- # vim (13)
- # yada (1)
buongiorno a tutti!
domanda da niubbo che non ha mai fatto cose async… sto usando un driver async per postgres che ovviamente usa async.core per comunicare con il db. Ora il mio problema è quando chiudere le connessioni del db. Con async qual’è il modo migliore per sapere che tutte le chiamate async hanno finito di eseguire? Devo wrappare tutto in una promise mi sa eh?
Non ti conviene aprire e chiudere la connessione al db ad ogni query
sisi certo, ho un pool di connessioni per il db
il problema mio è la coordinazione di quando chiudere il pool
mi sa che uso put!
, il worker inserisce e mi ritorna l’id
ed aspetto fino a quando tutte le righe non sono state inserite
Scusa, sono fuori e non ho la doc di core.async sotto mano
Puoi sempre usare https://clojuredocs.org/clojure.core/finally
non ha senso usarlo solo in un blocco try-catch?
di solito per queste cose uso mount
(or integrant
) - ti serve un modo per controllare il lifecycle del db e quelle due librerie fanno esattamente quello
Stuart Sierra e' stato il primo a descrivere questo pattern
sì ho letto di mount
è che volevo fare io a mano diciamo 🙂
ah scusa magari sai gia' quindi 😄
a mano se il component e' Closeable
e sei nello stesso code path puoi usare https://clojuredocs.org/clojure.core/with-open