我正在使用Ring和Clojure编写Web应用程序。我正在为开发服务器和IDE的Emac/Slime使用Jetty适配器。虽然Wrap-Reload确实有帮助,但Run-Jetty阻止了我的粘液会话,我希望能够随意启动/停止它,而无需在单独的终端会话中运行它。理想情况下,我想定义服务器代理和功能启动服务器和停止服务器,该服务器将启动/停止代理内部的服务器。这可能吗?

有帮助吗?

解决方案

我的环应用程序中通常有一条线,看起来如下:

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

这样可以防止锁定重置。它还使我可以重新编译此文件,而不必担心我的服务器会重新定义。它还可以让您像这样互动:

user=> (.stop server)

user=> (.start server)

其他提示

码头文档有一些有关 优雅的关闭 码头。这可能还不够,但可能会让您入门。

我还没有开始玩Compojure,但是总的来说,我更喜欢与Tomcat合作。它更完整;除其他外,还有一个有据可查的API来启动并将其关闭,它听取了专用端口上的关闭命令。有 ant 执行此操作的任务,当然也可以从Java应用程序中调用。我只是不知道将重置连接到Web容器的运行实例,以及如果/是否发生自动类重新加载,那么其他人将能够提供更多信息。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top