【发布时间】:2020-04-29 18:03:08
【问题描述】:
我正在构建一个基于服务器的应用程序,该应用程序在云中运行一系列自动化脚本(即“机器人”)。我已经提供了一个 Heroku Scheduler 实例来自动运行其中一个脚本,如下图 1 所示。
图 1. Heroku Scheduler 仪表板的屏幕截图从图 1 可以看出,调度程序应该运行以下命令
node src/spiders/clusters/auctionMacro.js
每十分钟一次。这似乎正在按预期发生,如下图 2 所示。它显示了完整的日志输出。
从 2020-01-12T10:41:54.171208+00:00 开始的五个日志条目似乎确认 node src/spiders/clusters/auctionMacro.js 的预期命令正在按预期发生,并且脚本正在按预期执行。
但是,以下三个日志条目表明调度程序也在尝试运行命令 npm start 并导致脚本崩溃。
2020-01-12T11:00:13.464651+00:00 heroku[web.1]:使用命令
npm start启动进程
2020-01-12T11:00:15.143335+00:00 heroku[web.1]:状态从开始变为崩溃
2020-01-12T11:00:15.080831+00:00 应用程序 [web.1]:npm 错误!缺少脚本:开始
对此我能做些什么?我可以以某种方式关闭npm start 命令吗?或者采取其他措施来纠正问题并防止脚本崩溃?
heroku logs生成的完整日志输出如下。
$ heroku logs 的完整输出
2020-01-12T10:41:46.690564+00:00 app[api]:使用命令
node src/spiders/clusters/auctionMacro.js由用户 scheduler@addons.heroku.com 启动进程
2020-01-12T10:41:54.171208+00:00 heroku[scheduler.2053]:使用命令node src/spiders/clusters/auctionMacro.js启动进程
2020-01-12T10:41:54.864597+00:00 heroku[scheduler.2053]:状态从开始变为向上
2020-01-12T10:41:56.797007+00:00 app[scheduler.2053]: [成功的脚本日志]
2020-01-12T10:41:56.799138+00:00 app[scheduler.2053]: [成功的脚本日志]
2020-01-12T10:41:56.799853+00:00 app[scheduler.2053]: [成功的脚本日志]
2020-01-12T10:41:56.893782+00:00 app[scheduler.2053]: [成功的脚本日志]
2020-01-12T10:41:59.126489+00:00 heroku[scheduler.2053]:状态从 up 变为 complete
2020-01-12T10:41:59.111484+00:00 heroku[scheduler.2053]:进程以状态 0 退出
2020-01-12T10:49:21.119405+00:00 app[api]:使用命令node src/spiders/clusters/auctionMacro.js由用户 myemail@example.com 启动进程
2020-01-12T10:49:29.862904+00:00 heroku[run.9372]:状态从开始变为向上
2020-01-12T10:49:29.827990+00:00 heroku[run.9372]:等待客户端
2020-01-12T10:49:29.878338+00:00 heroku[run.9372]:使用命令node src/spiders/clusters/auctionMacro.js启动进程
2020-01-12T11:00:05.438362+00:00 heroku[web.1]:状态从崩溃变为启动
2020-01-12T11:00:13.464651+00:00 heroku[web.1]:使用命令npm start启动进程
2020-01-12T11:00:15.143335+00:00 heroku[web.1]:状态从开始变为崩溃
2020-01-12T11:00:15.080831+00:00 应用程序 [web.1]:npm 错误!缺少脚本:开始
2020-01-12T11:00:15.088306+00:00 应用[web.1]:
2020-01-12T11:00:15.088587+00:00 应用程序 [web.1]:npm 错误!可以在以下位置找到此运行的完整日志:
2020-01-12T11:00:15.088690+00:00 应用程序 [web.1]:npm 错误! /app/.npm/_logs/2020-01-12T11_00_15_081Z-debug.log
2020-01-12T11:00:15.130770+00:00 heroku[web.1]:进程以状态 1 退出
2020-01-12T11:08:51.893315+00:00 heroku[run.9372]:客户端连接已关闭。向所有进程发送 SIGHUP
2020-01-12T11:08:52.437813+00:00 heroku[run.9372]:状态从 up 变为 complete
2020-01-12T11:08:52.421870+00:00 heroku[run.9372]:进程以状态 129 退出
me@My-MacBook-Air puppeteer % heroku maint
2020-01-12T22:15:01.428118+00:00 app[scheduler.9940]: == 开始时间:2020-01-12 22:04:21.402
2020-01-12T22:15:01.428167+00:00 应用程序[scheduler.9940]:
2020-01-12T22:15:02.410217+00:00 heroku[scheduler.9940]:使用 SIGTERM 停止所有进程
2020-01-12T22:15:02.481455+00:00 heroku[scheduler.9940]:进程以状态 143.929 退出(运行 10.7 分钟)
编辑:
Based on this SO answer,我运行了以下命令
heroku scale web=0
并在终端收到如下响应
缩放测功机...完成,现在在 0:Free 运行网络
我不确定这意味着什么,或者这是否是我应该前进的方向。
【问题讨论】:
标签: javascript node.js heroku npm scheduled-tasks