簡體   English   中英

如何為同時觸發的每個 function 添加延遲?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM