如何在Ring项目中运行任意的启动函数?

14

我有一个使用compojure/ring编写的应用程序,目前是通过lein ring server运行的,我想将其编译为.war文件以便部署。我已经有了一个定义,但是就像这样:

 (def foo (start-scheduler))

那会阻止编译和生成.war文件。为了避免这种情况,我考虑将调用移动到启动函数中,但当服务器启动时如何调用它呢?

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

谢谢!

1个回答

22

在你的project.clj中声明 Ring 处理程序时,你也可以指定一个初始化(和销毁)函数,在应用程序启动时运行:

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

这里有相关文档:https://github.com/weavejester/lein-ring#general-options


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接