我创造了几个触发链,在一个周末的特定时间开火。由于我可以使用的20个定时触发器的限制,我已经将它们链锁起来了。
随机地,链上新创建的触发器将被禁用,因此无法运行。很明显,这破坏了整个链条,完全搞砸了我想要达到的目标。
我想我在代码中创建新触发器的时候,在排序上可能有问题,但情况似乎并非如此。
我想知道是否删除它调用的脚本中的触发器可能是问题的原因--但我想不出另一种方法来编写它。
下面是链码的一部分:
function mastersResultsAmericas1() {
var region = "Americas";
var rSpot = 1;
var bgcolour = "#ffe1bc";
mrAmericasTC2();
mastersResults(region, rSpot, bgcolour);
delTrigger("mastersResultsAmericas1");
}
function mrAmericasTC2() {
ScriptApp.newTrigger("mastersResultsAmericas2")
.timeBased()
.atHour(9)
.nearMinute(50)
.onWeekDay(ScriptApp.WeekDay.SATURDAY)
.inTimezone("PST8PDT")
.create();
}
它们一直链接到5
,然后重置并再次创建1
触发器。
下面是删除触发器的代码:
function delTrigger(trigger) {
var triggers = ScriptApp.getProjectTriggers();
for (var i = 0; i < triggers.length; i++){
if (triggers[i].getHandlerFunction().indexOf(trigger) != -1)
{
ScriptApp.deleteTrigger(triggers[i]);
break;
}
}
}
我已经找到了引用禁用触发器的this链接--但答案并不适用于我。我是唯一的用户,也是唯一能够访问电子表格的人。
发布于 2020-03-22 03:46:55
我的解决办法是this问题的答案。
基本上,我只是将代码内置到现有的触发器中,该触发器检查日期/时间,并在满足条件时运行特定函数。不再需要触发器链,也不需要以编程方式创建任何额外的触发器(初始设置除外)。
https://stackoverflow.com/questions/60789236
复制相似问题