Node.js 由heroku调度程序创建的一次性dyno永不死亡(永不自杀……)

Node.js 由heroku调度程序创建的一次性dyno永不死亡(永不自杀……),node.js,heroku,Node.js,Heroku,我使用这个插件每天扫描数据库,它就像一个魔咒,耶如果一个一次性的dyno从未自杀,那很可能是因为某些东西仍然处于活动状态,或者从未完成或等待响应 在我的例子中,是数据库连接,添加mongoose.disconnect()解决了这个问题 (感谢@Chris让我走上正轨。)你的一次性dyno跑步是什么命令?它是否退出,理想情况下状态为0?嘿,Chris,我用来让dyno运行的命令是$node workers/dbscan(在项目的根目录下有一个workers文件夹,里面有一个dbscan.js文件

我使用这个插件每天扫描数据库,它就像一个魔咒,耶如果一个一次性的dyno从未自杀,那很可能是因为某些东西仍然处于活动状态,或者从未完成或等待响应

在我的例子中,是数据库连接,添加
mongoose.disconnect()
解决了这个问题




(感谢@Chris让我走上正轨。)

你的一次性dyno跑步是什么命令?它是否退出,理想情况下状态为0?嘿,Chris,我用来让dyno运行的命令是
$node workers/dbscan
(在项目的根目录下有一个
workers
文件夹,里面有一个
dbscan.js
文件)据我所知,它不会以任何状态退出。如果在本地计算机上运行
node workers/dbscan
,该命令是否完成,或者是否运行forvever?(如果它退出,它将以一个退出代码退出。)在打印了预期的console.log()之后,终端似乎已经为新命令做好了准备。但我没有看到任何出口代码。我试图添加
process.exit()。。。是否应在终端中打印?退出代码不打印,但在命令完成后,代码可能存储在变量中。例如,在bash中,可以在命令完成后立即运行
echo$?
,以查看退出代码。听起来Heroku的命令还没有结束。它有什么作用?是否有可能需要很长时间、进入无限循环等的情况。?如果在Heroku上以交互方式运行它,例如通过
Heroku运行节点工作程序/dbscan
,会发生什么情况?