【问题标题】:clojure worker-only app on heroku fails with Error R10heroku 上的 clojure worker-only 应用程序失败并出现错误 R10
【发布时间】:2015-08-23 07:50:37
【问题描述】:

我按照 Carin Meier 的 How I Start 帖子中的说明操作,但在运行没有 Web 组件的 clojure 应用程序时遇到了问题。

我的 Procfile 有建议:

worker: lein trampoline run

但是当我部署时,它说:

remote: -----> 发现进程类型

remote: Procfile 声明类型 -> worker

remote:Clojure (Leiningen 2) 的默认类型 -> web

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

错误 R10(启动超时)-> Web 进程未能在内部绑定到 $PORT 60秒发射

使用 SIGKILL 停止进程

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

【问题讨论】:

    标签: heroku clojure sigkill


    【解决方案1】:

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

    尽管您看到了错误,但您的“工人”进程应该仍然可以。该错误仅意味着您没有的“网络”进程没有运行。

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

    $ heroku run worker
    

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

    $ heroku run:detached worker 
    

    或者如果你想让它永久运行,你可以运行这个:

    $ heroku ps:scale worker=1
    

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

    $ heroku logs --tail
    

    希望对您有所帮助。

    【讨论】:

    • 如果您想在我修复它之前消除错误,您可以将此行添加到您的Procfile:web: ruby -rwebrick -e'WEBrick::HTTPServer.new(:Port => $PORT, :DocumentRoot => Dir.pwd).start'
    • 谢谢,今晚晚些时候我会试试这个!我必须有其他错误使我的工作线程无法运行...
    • heroku run worker 启动了我的代码,但我的代码中还有其他错误,所以我不能说这是否完全解决了我的问题。当我的代码运行时会返回。
    • 是否有错误跟踪报告,我可以在其中跟踪修复此问题的进度?
    • 如果我将“web:”命令添加到 Procfile,这是唯一运行的东西。可能是因为我在免费计划中?如果我不添加它,worker: 命令会运行大约 1 分钟——然后 web worker 启动,告诉我没有任何东西绑定到 PORT 并以状态 137 退出。在我看来,worker 并没有继续之后。
    猜你喜欢
    • 1970-01-01
    • 2014-03-26
    • 2013-09-11
    • 2019-01-29
    • 2019-09-07
    • 2016-04-15
    • 2019-03-02
    • 1970-01-01
    相关资源
    最近更新 更多