You can checkout the new pipeline stuff, I think it fits what you're looking for nicely:
https://gist.github.com/raspasov/7c9d8f2872d6065b2145 On Saturday, May 16, 2015 at 10:54:16 PM UTC-7, Oleg Dashevskii wrote: > > Hi, > > I’m new to Clojure async operations (while have a good understanding of > other things) and want to get a bit of advice. Atoms & agents still confuse > me. > > What I’m implementing is a small REST webservice with custom in-memory > database. Database is indexed by unique key, basically it’s a map (I’ll > denote it as MAP). There are two basic operations: > > *PUT /api/…/<KEY>.* Initiate an update for given KEY. The HTTP response > should be returned immediately, and the processing should be done > asynchronously. The processing consists of downloading a data file from web > and doing some data crunching, the result should go into MAP. > > *GET /api/…/<KEY>.* Use (get MAP KEY) and request params to generate > response synchronously. > > The tricky part (well, for me :) is that parallel PUT requests should be > possible. The downloading and processing can and should go in parallel, > independently, whereas updating the MAP should come synchronized, > one-after-the-other. > > How would you implement this? > > -- > Oleg. > -- 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.