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

标签 clojure jetty ring

我正在使用ring和clojure编写一个Web应用程序。我使用 jetty 适配器作为开发服务器,使用 emacs/SLIME 作为 IDE。虽然wrap-reload确实有帮助,但run-jetty会阻止我的slime session ,我希望能够随意启动/停止它,而不必在单独的终端 session 中运行它。理想情况下,我想定义一个服务器代理和启动服务器和停止服务器函数,以启动/停止代理内的服务器。这可能吗?

最佳答案

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

(defonce server (run-jetty #'my-app {:port 8080 :join? false}))

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

user=> (.stop server)

user=> (.start server)

关于clojure - 如何在 Clojure 中停止 jetty 服务器?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2706044/

相关文章:

java - 如何在 Jetty 9.4.x 的 servlet 上下文中动态添加和删除 servlet?

java - Pax-web、jetty和RewriteHandler导致404

Clojure pre/post-walk 从根路径开始

design-patterns - Clojure 中功能状态更新的模式/习惯用法

ssl - 在 jetty ssl 文件中配置生成的 keystore

redirect - Compojure/Clojure 路由错误

clojure - 如何调整 next.jdbc 中的 IReduceInit 以使用 cheshire 将 JSON 流式传输到使用 Ring 的 HTTP 响应

Clojure:覆盖库中的一个函数

clojure - Clojure 函数类型提示中的 [#^String str] 是什么

clojure - 阻止我无权访问的代码中的系统/退出