IBM Cloud:让 Cloud Foundry 不轮询应用程序实例(健康检查)
IBM Cloud: Have Cloud Foundry not poll for instance of application (health check)
我正在使用 IBM Cloud 部署一个 javascript 应用程序,它充当 discord 的侦听器聊天机器人。
当我部署代码时,机器人启动了,但只在部署阶段轮询机器人实例的时间段内保持启动 运行。在日志中我看到:
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 中,已在部署阶段确认,但它仍会检查该应用程序是否 运行.
我知道我已经说过了,但我只想说明一下,我的机器人在检查实例期间功能齐全。它这样做了大约三分钟,决定找不到,然后崩溃。如果我可以删除此检查过程,应用程序应该可以工作。
我该怎么做?
你需要明白Cloud Foundry checks the app health. By default it expects a web app and polls that port, even if you do not want a route to that app. You can configure a different health check type in the manifest file。
保留您的 no-route
设置并使用 process
作为健康检查类型。
我正在使用 IBM Cloud 部署一个 javascript 应用程序,它充当 discord 的侦听器聊天机器人。
当我部署代码时,机器人启动了,但只在部署阶段轮询机器人实例的时间段内保持启动 运行。在日志中我看到:
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 中,已在部署阶段确认,但它仍会检查该应用程序是否 运行.
我知道我已经说过了,但我只想说明一下,我的机器人在检查实例期间功能齐全。它这样做了大约三分钟,决定找不到,然后崩溃。如果我可以删除此检查过程,应用程序应该可以工作。
我该怎么做?
你需要明白Cloud Foundry checks the app health. By default it expects a web app and polls that port, even if you do not want a route to that app. You can configure a different health check type in the manifest file。
保留您的 no-route
设置并使用 process
作为健康检查类型。