【发布时间】:2020-08-31 00:24:44
【问题描述】:
我一直在尝试创建一个 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 分钟的功能,所以它需要分成三个执行。
【问题讨论】:
-
你目前使用的是什么运行时?
-
我不确定我是否理解,但我已经设置了我试图运行的实际功能,在它退出之前运行各种运行时 - 300 秒、200 秒和 50 秒,以防万一这就是问题所在(例如,触发时间与原始函数的运行时间重叠)。然而,他们都没有工作。发生的事情是每次设置触发器并且触发器在触发器列表中似乎是有效的,但是在执行时它失败并显示上述消息
-
@Alessandro 询问什么运行时(脚本运行的环境)- v8 引擎还是旧的 rhino 引擎?
标签: google-apps-script triggers