Javascript 如何将node.js脚本作为多个脚本运行?互不影响
我有一个node.js应用程序,它获取一些bot电报令牌,并将它们作为bot运行Javascript 如何将node.js脚本作为多个脚本运行?互不影响,javascript,node.js,Javascript,Node.js,我有一个node.js应用程序,它获取一些bot电报令牌,并将它们作为bot运行 我使用电传模块 但是,当一个机器人接收到太多请求或抛出错误后崩溃时,其他机器人就会发生这种情况 我能做些什么来解决这个问题 我希望机器人彼此分开 一种方法是复制我的代码并分别以多脚本的形式运行bot 但我有很多机器人,所以这是不可能的 以下是我运行机器人程序的代码: const Telegraf = require('telegraf'); var {Robots} = require('./model/model
我使用电传模块
但是,当一个机器人接收到太多请求或抛出错误后崩溃时,其他机器人就会发生这种情况
我能做些什么来解决这个问题
我希望机器人彼此分开
一种方法是复制我的代码并分别以多脚本的形式运行bot
但我有很多机器人,所以这是不可能的
以下是我运行机器人程序的代码:
const Telegraf = require('telegraf');
var {Robots} = require('./model/models/robots');
var botsList = [];
setInterval(() => {
Robots.find({bot_type: 'group manager'}).then((res) => {
if(res.length > 0){
var tokens = [];
for(var i = 0 ; i < res.length ; i++){
var newToken = res[i].token;
tokens.push(newToken);
}
var bot = [];
tokens.map(token => {
if(!botsList.includes(token)){
botsList.push(token);
var botUserId = token.split(':')[0];
bot[botUserId] = new Telegraf(token);
module.exports = {
bot
};
const Commands = require('./controller/commands/commands.js');
bot[botUserId].on('text', (ctx) => {
Commands.executeCommand(bot[botUserId], ctx);
});
bot[botUserId].startPolling();
}
});
}
}).catch(console.log);
}, 5000);
const Telegraf=require('Telegraf');
var{Robots}=require('./model/models/Robots');
var-botsList=[];
设置间隔(()=>{
Robots.find({bot_type:'groupmanager'})。然后((res)=>{
如果(分辨率长度>0){
var标记=[];
对于(变量i=0;i{
如果(!botsList.includes(令牌)){
botsList.push(令牌);
var botUserId=token.split(“:”)[0];
bot[botUserId]=新的Telegraf(令牌);
module.exports={
机器人程序
};
const Commands=require('./controller/Commands/Commands.js');
bot[botUserId].on('text',(ctx)=>{
executeCommand(bot[botUserId],ctx);
});
bot[botUserId].startPolling();
}
});
}
}).catch(console.log);
}, 5000);
如果您只希望一个代理中的错误不会影响整个脚本,那么您可以使用脚本的处理程序处理该错误
process.on('uncaughtException',console.log);
如果您想更进一步,为每个要运行的bot创建子进程。使用节点提供的模块
const fork=require('child_process')。fork;
fork('./bot.js',标记);
在这里,bot.js
可以包含所有与bot相关的代码
希望这有帮助