some start/stop web adjustments. ensure shutdown-server is run on close

note that using addShutdownHook like this will not work in a REPL
or even using `lein run`, though for the latter `lein trampoline run`
will work instead
This commit is contained in:
Gered 2016-06-29 09:50:41 -04:00
parent 8859432b7d
commit 3978fda02a

View file

@ -40,8 +40,11 @@
(defn shutdown (defn shutdown
[] []
(log/info "Shutting down ...") (log/info "Shutting down ...")
(views/shutdown!) (views/shutdown!)
(sente/init!)) (sente/shutdown!)
(log/info "Application stopped."))
(defn wrap-env-middleware (defn wrap-env-middleware
[handler] [handler]
@ -61,16 +64,23 @@
(sente/wrap-sente "/chsk") (sente/wrap-sente "/chsk")
(wrap-defaults (assoc-in site-defaults [:security :anti-forgery] false)))) (wrap-defaults (assoc-in site-defaults [:security :anti-forgery] false))))
(defn run-server (defn start-server!
[] []
(init) (init)
(immutant/run #'handler {:port 8080})) (immutant/run
#'handler
(merge
{:port 8080
:host "localhost"
:path "/"
:virtual-host nil
:dispatch? true}
(config/get :web))))
(defn stop-server (defn stop-server!
[] []
(immutant/stop) (if (immutant/stop)
(shutdown)) (shutdown)))
(defn -main (defn -main
[& args] [& args]
@ -80,7 +90,9 @@
(db/verify-connection) (db/verify-connection)
(case action (case action
:web :web
(run-server) (do
(start-server!)
(.addShutdownHook (Runtime/getRuntime) (Thread. ^Runnable stop-server!)))
:setup-db :setup-db
(db/initialize-database!) (db/initialize-database!)