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个回答
这是一个已知问题,已在问题跟踪器中多次报告。请考虑为这些问题添加星号(左上角),以便让 Google 知道您希望他们优先处理该问题。对于某些用户, 恢复使用旧版 Rhino 引擎已解决问题 。
问题:
- https://issuetracker.google.com/issues/150756612
- https://issuetracker.google.com/issues/142490621
- https://issuetracker.google.com/issues/142405165
- https://issuetracker.google.com/issues/149668305
相关问题:
TheMaster
2020-09-01
请注意,18 个月后(2022 年 3 月),这个问题仍然未得到解决(就像上面 IssueTracker 的答案中列出的四个问题一样)。
Gareth
2022-03-18