我的Clojure Compojure应用程序超过了绑定到Heroku端口50%的启动时间限制。然后,它需要一次或两次调用heroku restart
来实现它。我可能需要太多依赖项,但我不知道我是否可以动态执行此操作。
有没有办法通过以后加载依赖关系在Clojure中更快地绑定? Ruby领域普遍接受的解决方案是heroku-forward,但这对Clojure不起作用。
此问题与Heroku Boot Timeout (Error R10)。
有关CircleCI处理我的部署,而uberjar是预先构建的。
答案 0 :(得分:3)
TL; DR:没有简单的方法可以减少Heroku上的Clojure启动时间。改为部署uberjar。
我和Clojure + Heroku有同样的问题。我认为关于下载依赖项的时间问题 ,因为Heroku已将其缓存,因此heroku-forward
之类的解决方案无法正常工作。
Clojure应用程序需要首先加载完整的Clojure运行时,然后运行时将编译应用程序的代码。该引导和编译时间导致超时错误。
有两种方法可以解决此问题:
lein uberjar
在另一台计算机上编译,然后部署jar。答案 1 :(得分:1)