clojure - 如何在环项目中运行任意启动功能?

标签 clojure compojure ring

我有一个目前正在运行的 compojure/ring 应用程序 lein ring server我想编译为 .war 以便我可以部署它。然而,我有一个定义,就像

 (def foo (start-scheduler))

这阻止了 .war 的编译和生成。为了规避这一点,我考虑将调用移动到启动函数,但是当服务器启动时我将如何调用它?

如果我将调用放在处理程序中,我最终会遇到与以前相同的问题。

谢谢!

最佳答案

在您的 project.clj在声明 Ring 处理程序时,您还可以指定在应用程序启动时运行的 init(和 destroy)函数:

:ring {:init myproject.core/init
       :destroy myproject.core/destroy
       :handler myproject.core/handler}

这在此处记录:https://github.com/weavejester/lein-ring#general-options

关于clojure - 如何在环项目中运行任意启动功能?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13978623/

相关文章:

clojure - 更具可读性的 Compojure 路线

clojure - Ring 和 Compojure - 内容类型为 application/json 的 POST 请求不起作用

java - 如果 start() 出现异常,则终止 Jetty 服务器线程池

Clojure - Ring uberjar 指定端口

Clojure:向量加法的可变参数函数

vector - 为什么 `vector` 和 `[...]` 在 Clojure 中有时表现不同?

具有多个断言的 Clojure 测试

clojure - 使用 compojure.route/resources 和 ring.middleware.resource/wrap-resource

session - 在 clojure/ring 中,如何删除 cookie?

clojure - 为 Clojure 协议(protocol)提供多种实现