heroku 上的 clojure worker-only 应用程序因错误 R10 而失败

clojure worker-only app on heroku fails with Error R10

我正在按照 Carin Meier 的 How I Start post 的说明进行操作,运行 没有 Web 组件的 clojure 应用程序有问题。

我的 Procfile 有建议:

worker: lein trampoline run

但是当我部署时,它说:

remote: -----> Discovering process types

remote: Procfile declares types -> worker

remote: Default types for Clojure (Leiningen 2) -> web

我不确定最后一行是从哪里来的。由于我的应用根本没有连接到网络,它被杀死了:

Error R10 (Boot timeout) -> Web process failed to bind to $PORT within 60 seconds of launch

Stopping process with SIGKILL

如果不清楚,我是 Heroku 的新手……我错过了什么?如何删除 Default types for Clojure (Leiningen 2) -> web 设置和我将 bind to $PORT 的期望?

Heroku Clojure buildpack 假定您正在部署 Web 应用程序,并会自动尝试为您创建一个 "web" 进程类型。这是一个错误的假设,我会修复它(我是 Clojure buildpack 维护者)。

尽管您看到了错误,但您的 "worker" 过程应该仍然正常。该错误仅表示您没有的 "web" 进程不是 运行ning。

您可以 运行 您的工作人员在这样的同步一次性流程中:

$ heroku run worker

或者您可以像这样 运行 它在后台(分离):

$ heroku run:detached worker 

或者,如果您希望它永久 运行,您可以 运行 这个:

$ heroku ps:scale worker=1

无论如何,您可以通过查看日志来检查它:

$ heroku logs --tail

希望对您有所帮助。