如何在clojure中停止jetty服务器?

Mad*_*bat 53 jetty clojure ring

我正在使用ring和clojure编写Web应用程序.我使用jetty适配器开发服务器和emacs/SLIME for IDE.虽然wrap-reload确实有帮助,但run-jetty会阻止我的粘贴会话,我希望能够随意启动/停止它,而无需在单独的终端会话中运行它.理想情况下,我想定义一个服务器代理和函数start-server和stop-server,它们将启动/停止代理中的服务器.这可能吗?

dno*_*len 105

我的Ring应用程序中通常有一行如下所示:

(defonce server (run-jetty #'my-app {:port 8080 :join? false}))
Run Code Online (Sandbox Code Playgroud)

这可以防止锁定REPL.它还允许我重新编译此文件,而不必担心我的服务器将被重新定义.它还允许您在REPL中进行交互,如下所示:

user=> (.stop server)
Run Code Online (Sandbox Code Playgroud)

user=> (.start server)
Run Code Online (Sandbox Code Playgroud)

  • 没关系,问题是defonce没有重新定义 - 想象一下:) (3认同)