【问题标题】:What's the standard way to run a Clojure product in production? [closed]在生产中运行 Clojure 产品的标准方法是什么? [关闭]
【发布时间】:2020-01-23 17:45:58
【问题描述】:

在生产环境中运行 Clojure 产品的标准方法是什么?是 lein run 还是制作一个 java jar 并运行它?另外,我的 main 只调用了一个无限循环。当我从 repl 运行它时工作正常,但 lein run 和 java -jar uberjar 文件似乎都没有保持打开的进程。想知道是否有人可以就此提供建议。

【问题讨论】:

  • 你能生成一个minimal reproducible example 让其他人自己看到问题(java -jar uberjar)吗?
  • ...只要你的 main 阻塞了来自 goroutines 永远不会写入的通道的返回值(至少,除非请求彻底关闭),它就应该真正永远挂起;但是如果您不向我们展示您的主要内容,我们将无法查看您是否正在这样做(或任何等效项)。

标签: clojure leiningen


【解决方案1】:

正如你提到的,通常你会将它作为一个 uber-jar 运行,java -jar my-uber.jar

【讨论】:

  • AFAICT,这不是 OP 的“真正问题”,更多的是关于他们的main 在他们希望它继续运行直到 goroutine(旨在无限期地继续运行)完成时立即返回。
  • 我不确定我是否同意您的观点,即只打算提出一个“真实”问题。无论哪种方式,这是对实际提出的两个问题之一的正确答案。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-10-30
  • 2011-04-23
  • 1970-01-01
  • 2023-03-31
  • 2020-12-13
相关资源
最近更新 更多