Discord.js 设置间隔功能未激活。需要确认原因
Discord.js Set Interval function not activating. Need confirmation of cause
我目前在使用 setinterval 函数时遇到问题,想知道是否有人可以提供帮助。奇怪的是,它可以在 10 秒或 20 秒这样的短时间间隔内工作,但是当我将它缩放到一天或半天时,它无法 运行。我使用的是 discord.js
的 11.5.1 版
bot.setInterval(function(){
var Holiday = new Date();
var month = Holiday.getMonth()+1;
var day = Holiday.getDate();
var check = month+'/'+day;
var greeting = "";
for(var i = 0; i < Events.length; i++){
if(check == Object.keys(Events[i]) && check != "12/25"){
greeting = "Happy "+Object.values(Events[i]);
}
if(check == "12/25"){
greeting = "Merry Christmas";
}
}
for(var j = 0; j < c.length;j++){
var channel = bot.channels.get(c[j]);
if(greeting != ""){
channel.sendMessage(greeting);
}
//channel.sendMessage('test');
}
}, 3600000,)
这是ready事件中的函数。 Events 是一个包含键值对数组的 json 文件。 c 是一个包含频道 ID 的数组。所以在 json 文件中我有一个测试日期,当我在当天 运行 时它会起作用,但是当我将日期更改为下一天然后等待那个时间到来时,没有任何反应但是时间应该已经过去了,变量应该都被重置了,所以有什么想法吗?此外,我让机器人托管在故障上,它会发送自己的 ping 请求,并使用正常运行时间机器人,这表明 60 小时内没有出现故障。我能想到的唯一原因是,故障可能会使机器人瞬间进入休眠状态,并导致间隔不断重置,但这意味着 ping 和正常运行时间机器人没有任何效果。另外,如果有人有巧妙的解决方法,我将不胜感激。我能做的最好的就是有一个执行此操作的命令。
可能是因为你没有像这样在最后破坏函数
}
//channel.sendMessage('test');
}
}, 3600000);
也许那个逗号使值充当整数,更多的值将被放入其中。
自从我更新到新版本的库后,情况发生了变化。然而,这是很久以前的事了,当时我主持的时候出现了故障,这最终成为了问题所在。即使您使用 uptime robot 对其进行 ping 操作,Glitch 仍会使机器人进入休眠状态,因为它们可以防止 ping 垃圾邮件。
我目前在使用 setinterval 函数时遇到问题,想知道是否有人可以提供帮助。奇怪的是,它可以在 10 秒或 20 秒这样的短时间间隔内工作,但是当我将它缩放到一天或半天时,它无法 运行。我使用的是 discord.js
的 11.5.1 版bot.setInterval(function(){
var Holiday = new Date();
var month = Holiday.getMonth()+1;
var day = Holiday.getDate();
var check = month+'/'+day;
var greeting = "";
for(var i = 0; i < Events.length; i++){
if(check == Object.keys(Events[i]) && check != "12/25"){
greeting = "Happy "+Object.values(Events[i]);
}
if(check == "12/25"){
greeting = "Merry Christmas";
}
}
for(var j = 0; j < c.length;j++){
var channel = bot.channels.get(c[j]);
if(greeting != ""){
channel.sendMessage(greeting);
}
//channel.sendMessage('test');
}
}, 3600000,)
这是ready事件中的函数。 Events 是一个包含键值对数组的 json 文件。 c 是一个包含频道 ID 的数组。所以在 json 文件中我有一个测试日期,当我在当天 运行 时它会起作用,但是当我将日期更改为下一天然后等待那个时间到来时,没有任何反应但是时间应该已经过去了,变量应该都被重置了,所以有什么想法吗?此外,我让机器人托管在故障上,它会发送自己的 ping 请求,并使用正常运行时间机器人,这表明 60 小时内没有出现故障。我能想到的唯一原因是,故障可能会使机器人瞬间进入休眠状态,并导致间隔不断重置,但这意味着 ping 和正常运行时间机器人没有任何效果。另外,如果有人有巧妙的解决方法,我将不胜感激。我能做的最好的就是有一个执行此操作的命令。
可能是因为你没有像这样在最后破坏函数
}
//channel.sendMessage('test');
}
}, 3600000);
也许那个逗号使值充当整数,更多的值将被放入其中。
自从我更新到新版本的库后,情况发生了变化。然而,这是很久以前的事了,当时我主持的时候出现了故障,这最终成为了问题所在。即使您使用 uptime robot 对其进行 ping 操作,Glitch 仍会使机器人进入休眠状态,因为它们可以防止 ping 垃圾邮件。