I did not know #'app is for reload. It's very helpful. Thanks. On Saturday, January 19, 2013 5:26:06 PM UTC+8, Baishampayan Ghose wrote: > > On Sat, Jan 19, 2013 at 5:24 AM, faenvie <fanny....@gmx.de <javascript:>> > wrote: > > i have learned that for a ring/compojure-app the embedded jetty > > service can be started like this: > > > > (def app (handler/site routes)) > > > > (defn start [port] > > (ring/run-jetty (var app) {:port (or port 8080) > > :join? false})) > > > > can anyone explain, what is the var for ? why '(var app)' or #'app ? > > i found some remarks about being able to change the app without > > having to restart the server but how exactly does this relate ? > > If you pass in the app as it is, then the var gets evaluated to the > function that the var refers to and the jetty adapter uses that > function to run the server. > > Now if you recompile your ring handlers (aka functions) the same app > var will get rebound to a new function while the jetty server will > continue holding on to the old handler function, so if you refresh the > page, etc. you won't see the change on your browser. You will have to > kill the server and restart jetty. > > If you pass just the var instead, jetty holds on to the container (the > var) and not the value. The jetty-adapter derefs the var on every > request and sends the response back. As a result if you recompile your > handlers you'll see the effects immediately without restarting the > server. > > The derefing has a penalty, albeit minor. Thus, you may choose to not > pass in the app as a var in production deployments. > > Regards, > BG > > > > -- > Baishampayan Ghose > b.ghose at gmail.com >
-- 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