IBM Cloud:让Cloud Foundry不对应用程序实例进行轮询(运行状况检查)

时间:2018-09-11 09:19:14

标签: javascript node.js ibm-cloud cloudfoundry discord

我正在使用IBM Cloud部署一个JavaScript应用程序,该应用程序充当不和谐的侦听器聊天机器人。

当我部署代码时,机器人启动,但仅在部署阶段轮询正在运行的机器人实例的时间内保持启动。在日志中,我看到:

0 of 1 instances running, 1 starting
0 of 1 instances running, 1 starting
0 of 1 instances running, 1 starting

...等搜索后,我发现cf正在轮询不应该存在的路由,因为此应用程序只是一个侦听器,所以我添加了最后一行:

no-route: true

到我的manifest.yml:

applications:
  - path: .
    name: discord-bot
    environment_json: {}
    memory: 256M
    instances: 1
    disk_quota: 1024M
    services: []
    no-route: true

这会删除日志中的路由:

Removing route discord-bot....

但是,在轮询,发现0个实例并最终因消息而崩溃时,我遇到了同样的问题:

0 of 1 instances running, 1 starting
0 of 1 instances running, 1 crashed
FAILED
Error restarting application: Start unsuccessful

当我使用IBM-Cloud时,我不确定如何在命令行上推送应用程序时指定诸如'--no-route'之类的参数,但是我认为这无论如何都行不通位于我的manifest.yml中,在部署阶段已确认,但是它仍在检查应用程序是否正在运行。

我知道我已经说过了,但是只是为了说明一下,我的机器人在检查实例的过程中可以正常运行。它执行了大约三分钟,决定找不到它,然后崩溃了。如果我可以删除此检查过程,则该应用程序应该可以运行。

我该怎么做?

1 个答案:

答案 0 :(得分:0)

您需要了解Cloud Foundry checks the app health。默认情况下,即使您不希望路由到该应用程序,它也会期望一个Web应用程序并轮询该端口。您可以configure a different health check type in the manifest file

保留您的no-route设置,并使用process作为健康检查类型。