clojure - Compojure:lein-ring 正在生产中?

标签 clojure leiningen compojure

人们似乎建议使用 lein-ring 来轻松部署 Compojure 应用程序。不就是为了发展吗?我对使用 lein-ring 运行的同一个应用程序与由 leiningen 使用 uberjar 打包的应用程序进行了基准测试(使用 java -jar 执行,它包含ring-jetty)。

令我惊讶的是,使用 lein-ring 时性能甚至略好!我错过了什么吗?

我怎样才能继续使用 lein-ring 但避免在出现异常时打印堆栈跟踪并避免检查修改的文件?

谢谢

最佳答案

lein-ring 将允许您轻松生成一个 war 文件以部署到容器(并作为 lein-beanstalk 的基础) 以便轻松部署到 Amazon 的 Elastic Beanstalk),但我不知道在生产中使用它的常见做法。当然是一种选择,但可能很少是最好的选择。我建议使用主机/容器推荐的方法进行部署;这通常意味着部署一场 war (可以使用 lein-ring 来构建)或使用某种带有嵌入式 Jetty 实例的无容器部署(如 Heroku 和 Leiningen)。

如果您确实想要在生产中使用 lein-ring 但想要关闭其开发时功能(代码重新加载、堆栈跟踪渲染等),则必须设置 RING_ENV环境变量为production ,例如:

export RING_ENV=production
lein ring ...

关于clojure - Compojure:lein-ring 正在生产中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7787911/

相关文章:

ubuntu - Leiningen 脚本安装 1.7.1 版而不是 2.6.1 版? (Ubuntu 14.04)

performance - 如何知道在哪里放置类型提示以提高 Clojure 中的数字性能?

java - 如何在出现插件错误的情况下启动 IntelliJ IDEA

logging - 通过 clojure.tools.logging 在同一个命名空间中使用多个记录器

maven - Leiningen 与 Maven 的关系是什么?

clojure - 如何运行 leiningen 创建的项目?

clojure - Hiccup 模板函数

ajax - cljs-ajax POST 给出 403

clojure - 在中间件阶段访问路由参数

Clojure、闭包、WebSocket、在线聊天演示