マウント ライブラリを使用して、-main 関数で http-kit の「マウント状態」をリロード (停止および開始) するにはどうすればよいですか?
私の現在のコードはこれです:
(defstate server-config :start {:port 7890 :join? false})
(defn start-server [server-config]
(when-let [server (run-server myserv-ring-handler server-config)]
(println "Server has started!")
server))
(defstate myserv-server :start (start-server server-config)
:stop (myserv-server :timeout 100))
(defn system-port [args]
(Integer/parseInt
(or (System/getenv "PORT")
(first args)
"7890")))
(defn -main [& args]
(mount/start-with-states
{#'myserv/server-config
{:start #(array-map :port (system-port args)
:join? false)}}))
したがって、「lein run」するとすべてが機能しますが、ファイルを変更してhttp-kitサーバーが停止すると、コマンドが停止します。今のところ「while true; do lein run; done」で動いているので、 -main 関数に無限ループを入れようかとも思ったのですが、これではだめな気がします。
どうすればいいですか?