使用mount库,如何在-main函数上重新加载(停止和启动)http工具包“mount state”?
我现在的代码是:
(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”一切正常时,但是每当我更改一个文件,并且超文本传输协议服务器停止时,命令就会停止。目前我正在做“虽然真实;做lein运行;完成”来工作,所以我想过在-main函数中添加一个无限循环,但感觉这不是正确的方法。
我该怎么做?
所以我有几个不同的问题:
你可以在这里看到与图书馆作者的讨论。
我建议向http服务器添加一些元数据defstate
。
从挂载自述文件:
如果不需要对reload/recompile/redef上的运行状态进行任何操作,请将: on-reload
设置为: noop:
。
因此,请尝试以下方法:
(defstate ^{:on-reload :noop}
myserv-server
:start (start-server server-config)
:stop (my-stop-func myserv-server))
这意味着当您更改文件时,受影响的代码将被重新加载,但http服务器将继续运行。
我希望我已经正确理解了你的问题,这就是你想要的。
我还可以建议,如果你想快速启动并运行,那么Leiningen有各种模板化的网络应用项目。例如,卢明斯项目。您可以将一个超文本传输协议-kit
参数传递到lein new Lightus myapp
命令,这将为您正确连接一个应用程序。然后,您可以去阅读生成的代码,并了解它是如何组合在一起的。
我正在从我的角UI调用Spring引导REST服务。只要Spring Boot Rest服务作为Spring Boot应用程序执行,它就运行良好。但是一旦我将其转换为WAR文件并部署在Jboss 6.2.4服务器上,我就会得到404。我看到来自UI的REST服务调用成功,但请求JSON没有通过。在请求JSON上,我正在传递2个字符串和一个上传的excel文件。 这是我的angular UI htt
调用SOAX Web服务,并使用groovy脚本检查Web服务响应的超文本传输协议状态。在《骡子3》中,精彩的剧本是... 骡子4中的等价物是什么?谢谢。
Azure http 触发器函数应用不随启动一起提供。我想实现azure AD身份验证,它添加了Microsoft.AspNetCore.Builder的UseAuthentication方法来验证令牌并对用户进行身份验证。 目前Http触发器正在点击Run方法directly.There应该是一些中间件逻辑来添加服务和配置 创业班 授权属性下面的后实现应该验证令牌并允许/拒绝用户访问。 请帮忙。
我正在尝试使用Spring靴redis来存储其中的会话。当我按照他们的留档操作时,启动服务器时总是会出现异常。 到目前为止我做了什么:-我根据文档(单击)添加了所需的依赖项并创建了非常小的配置类= 因为我找不到错误,所以我使用gradle/maven导入了他们的示例项目并进行测试,我会得到或多或少相同的异常... 有人知道那个问题吗?
我正在使用下面的代码登录apiendpoint并从中检索数据,但响应似乎已编码,我无法读取内容。我正在使用request-requestes-0.0.1 当我在控制台上打印相同的响应 有人能告诉我如何解码和读取响应中的数据吗
我们在Glassfish v4上创建了一个网站,它使用8080端口作为http,8081端口作为https。我们的cisco防火墙将请求转发到端口80到端口8080,并将请求转发到端口443到端口8081。 但是我们不希望用户能够访问超文本传输协议网站。我们希望将所有请求重定向到超文本传输协议站点到https。怎么能做到呢?在Glassfish管理面板中,我们对配置进行了更改-