人们似乎建议使用 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/