{node / discord js}错误重新启动机器人的整个脚本

时间:2020-08-21 05:15:33

标签: javascript node.js discord.js

所以我试图让我的机器人在遇到错误时完全重启。我之所以不仅仅通过连接错误进行筛选是因为,每当遇到互联网问题时,由于原始节点进程尚未终止,因此代码开始重复多次,从技术上讲,我可以修复,但可以通过其他方式与外部连接api也停止工作。因此,忽略固定的问题,我只想完全重新启动。

我当前正在使用的是具有此功能的节点child_process:

spawn(process.argv.shift(), process.argv, {
    cwd: process.cwd(),
    detached : true,
    stdio: "inherit"
});
process.exit();

我知道stdio继承不做任何事情,因为它退出了父进程,但是它并没有真正改变任何使其忽略的东西,所以我就离开了它。基本上,这在理论上是可行的,如果我使用命令来执行此操作,我可以一遍又一遍地执行它,它将正常运行,单个不和谐的客户端,不再重复,它正常了,因为我原来无法监视它终端断开连接,我可以使用命令退出当前进程,因此不会卡死,因为我没有ctrl-c的终端。但是一旦付诸实践,通过断开我的Internet的连接来执行bot.on(“ error”)中的功能似乎可以正常工作,它结束了第一个过程,但是重新获得Internet后就没有客户端连接。

我的猜测是:由于没有争吵的客户端,bot.on(“ error”)将不会在下一个过程中重新执行。

所以我不知道我是否把它弄得太复杂或是否需要增加更多。如果这是最好的方法,那么我需要解决的就是等到我重新上网后再进行新的处理或类似的操作。我没有受过Node方面的教育,所以如果有任何答案可以初学者友好(主要针对node),我将非常感激。

2 个答案:

答案 0 :(得分:0)

bot.on("error", (err) => {
process.exit(0)
});

应该可以,如果出现错误,它将重新启动bot。

不确定您的意思

我的猜测是:由于没有争吵的客户端,bot.on(“ error”)将不会在下一个过程中重新执行。

只要您使用与启动相同的代码对其进行bot攻击,它将重新启动bot。

答案 1 :(得分:0)

如果您使用批处理文件运行漫游器,只需在:a之前添加node .,并在末尾添加goto a