Thanks Brian, nice idea :) I also added load/save functionality from the atom when reloading the environment in development.
On Sunday, May 29, 2016 at 2:57:56 PM UTC+3, Brian Platz wrote: > > In a web-app you probably want the thread safety an atom provides, so it > would be a good choice. > > You can include a reference to your atom in your system config if you want > to retain the reloaded-like / dependency injection pattern: > > (def changing-config (atom {})) > > ;; system-map > (def sys-map > {:a "a" > :b 42 > :c changing-config}) > > (defn my-handler > [handler sys-map] > (fn [req] {:status 200 :body @(:c sys-map)})) > > > On Saturday, May 28, 2016 at 2:16:32 PM UTC-4, babysnakes wrote: >> >> Hey all, >> >> I don't have a lot of experience with clojure but I did write a few small >> services in clojure. Until now the state of the services I wrote were >> static so I constructed a system map (more or less following Stuart >> Sierra's reloaded workflow - without using the component framework) and >> injected it to the various handlers via middleware closure. This works >> great when the state is static. Now I have to write a small service where >> the state should be updated (I have to periodically pull new >> configurations). The first place I can think of to put this state is in a >> global atom, but I was wondering if there's a pattern that allows me to >> dynamically update global state without using global atom. >> >> Thanks in advance >> >> Haim >> > -- You received this message because you are subscribed to the Google Groups "Clojure" group. To post to this group, send email to clojure@googlegroups.com Note that posts from new members are moderated - please be patient with your first post. To unsubscribe from this group, send email to clojure+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/clojure?hl=en --- You received this message because you are subscribed to the Google Groups "Clojure" group. To unsubscribe from this group and stop receiving emails from it, send an email to clojure+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/d/optout.