[英]How do I add delay to every function I trigger at the same time?
我需要在早上 8 点运行 3 function,以便我的电报机器人可以发送我需要发送的所有消息,但是由于电报机器人(反垃圾邮件)的限制,它向我发送了这个错误:
Exception: Request failed for https://api.telegram.org returned code 429. Truncated server response: {"ok":false,"error_code":429,"description":"Too Many Requests: retry after 36","parameters":{"retry_after":36}} (use muteHttpExceptions option to examine full response)
因此,有人说我应该添加一些延迟,但我不知道如何。
这是我的代码
function function_Triggered() {
FunctionOne(), FunctionTwo(), FunctionThree()
deleteTriggers();
scheduledTrigger(8.00);
}
function scheduledTrigger(hours, minutes){
var now = new Date();
var year = now.getFullYear();
var month = now.getMonth();
var day = now.getDate();
pars = [year,month,day,hours,minutes];
var scheduled_D = new Date(...pars);
var hours_remain = Math.abs(scheduled_D - now) / 36e5;
ScriptApp.newTrigger(function_Triggered)
.timeBased()
.after(hours_remain * 60 * 60 * 1000)
.create()
}
function deleteTriggers(){
var triggers = ScriptApp.getProjectTriggers();
for (var i = 0; i<triggers.length; i++) {
if( triggers[i].getHandlerFunction()== function_Triggered) {
ScriptApp.deleteTrigger(triggers[i]);
}
}
}
有人可以帮我在哪里以及如何延迟吗? 我希望它们在每个功能延迟 5 分钟的情况下自行运行。
您可以单独触发永远 function 或使用setTimeout
。
function function_Triggered() {
setTimeout(FunctionOne, 0);
setTimeout(FunctionTwo, 1000 * 60 * 5);
setTimeout(FunctionThree, 1000 * 60 * 5 * 2);
deleteTriggers();
scheduledTrigger(8.00);
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.