开发者问题收集

Google Apps Script 禁用基于时间的重复触发器

2020-08-31
1511

我一直在尝试创建一个 Google Apps 脚本,该脚本在超时之前设置触发器并在设定的时间段后继续运行。

第一个触发器正常工作,但第二个触发器始终无法执行代码,并显示以下错误消息“此触发器已因未知原因被禁用。”

我删除了代码以使用以下内容进行测试:

function setTriggerTest() {

  var triggers = ScriptApp.getProjectTriggers();

  for ( var i in triggers ) {

     //delete all previous triggers for this function

     if (triggers[i].getHandlerFunction() == "setTriggerTest") {
     ScriptApp.deleteTrigger(triggers[i])
     
     }
  }

  
  var currTime = (new Date()).getTime(); 

  //set a new trigger to launch this function in 10000 milliseconds 
  ScriptApp.newTrigger("setTriggerTest")
               .timeBased()
               .at(new Date(currTime+10000))
               .create();

  
}

此代码运行,然后成功设置下一个触发器,然后再次运行 setTriggerTest() 函数,然后设置另一个触发器。但第二个触发器无法执行 setTriggerTest(),并显示错误消息“此触发器已因未知原因被禁用。”

这背后有什么原因和/或解决方法吗?基本上,我想执行总共需要 15 分钟的功能,因此需要将其分为三次执行。

2个回答

请注意,18 个月后(2022 年 3 月),这个问题仍然未得到解决(就像上面 IssueTracker 的答案中列出的四个问题一样)。

Gareth
2022-03-18