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

问题描述 投票:0回答:1

我正在使用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,在部署阶段得到承认,但它仍然会检查应用程序是否正在运行。

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

我该怎么做呢?

javascript node.js ibm-cloud cloudfoundry discord
1个回答
0
投票

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

保留你的no-route设置并使用process进行健康检查。

© www.soinside.com 2019 - 2024. All rights reserved.