On Wed, Jul 7, 2010 at 2:10 PM, James Reeves <jree...@weavejester.com>wrote:
> On 7 July 2010 19:04, David Nolen <dnolen.li...@gmail.com> wrote: > > So something like this: > > (defn hello-world [request] > > (future > > (Thread/sleep 1) > > (respond! request > > {:status 200 > > :headers {"Content-Type" "text/html"} > > :body "Hello world!"}))) > > Is non-blocking and perfectly fine? > > Actually that rather defeats the point of a non-blocking server. > You're still using up a thread, and hence haven't really gained > anything over: > > (defn hello-world [request] > (Thread/sleep 1) > {:status 200 > :headers {"Content-Type" "text/html"} > :body "Hello world!"}) > > The main advantage of a non-blocking server is that you're don't use > up a thread waiting for an event (such as the user sending data, or > some other external trigger). > > - James But I guess I'm trying to figure out what the most idiomatic way to pipeline in this situation would be (one thing I don't like about Node.js is that it encourages working with a mess of callbacks). For example what would be the best most idiomatic way to hit a database (blocking operation), process that data and return the result with respond! ? David -- 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