【发布时间】:2017-10-11 02:59:42
【问题描述】:
我正在 Heroku 上使用 Node.js 开发一个 REST api,其中一个驱动程序给我带来了问题(我已经向驱动程序创建者报告了这一点),但基本上每半小时左右重新启动一次测功机似乎解决这个问题。 我希望你们都可以帮助我为调度程序编写脚本或类似的东西,以每隔 10 分钟左右自动重新启动测功机作为临时修复。
附言我查看了调度程序文档,但没有多大意义
谢谢!
【问题讨论】:
我正在 Heroku 上使用 Node.js 开发一个 REST api,其中一个驱动程序给我带来了问题(我已经向驱动程序创建者报告了这一点),但基本上每半小时左右重新启动一次测功机似乎解决这个问题。 我希望你们都可以帮助我为调度程序编写脚本或类似的东西,以每隔 10 分钟左右自动重新启动测功机作为临时修复。
附言我查看了调度程序文档,但没有多大意义
谢谢!
【问题讨论】:
@rdegges 提供的步骤需要在请求中添加额外的身份验证令牌。添加更多细节:
通过运行Heroku platform API 中提到的此命令,使用 Heroku CLI 创建身份验证令牌
heroku authorizations:create
将 Heroku Scheduler add-on 安装到您的 Heroku 应用程序中。
打开调度程序并去添加作业。在作业编辑器中输入以下命令。该命令执行restart the dyno。
`
curl -n -X DELETE https://api.heroku.com/apps/APP_NAME/dynos \n -H "Content-Type: application/json" \n -H "Accept: application/vnd.heroku+json; version=3" \n -H "Authorization: Bearer TokenCreatedInStep1"
在 Heroku 应用程序日志中验证调度程序作业是否在设定的时间运行。
【讨论】:
您可以通过执行以下操作来满足您的要求:
在您的项目中创建一个脚本,该脚本发出 Heroku 平台 API 请求以重新启动您的测功机。 API 调用文档可以在这里找到:https://devcenter.heroku.com/articles/platform-api-reference#dyno-restart-all
提供 Heroku Scheduler 插件。
进入 Heroku Scheduler 的 Web UI,并告诉它每小时(或任何适合您的时间段)运行您的重启脚本。
这是实现这一目标的最佳“务实”方式。
【讨论】: