首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >GAS触发器在以编程方式创建后随机禁用

GAS触发器在以编程方式创建后随机禁用
EN

Stack Overflow用户
提问于 2020-03-21 14:50:51
回答 1查看 185关注 0票数 0

我创造了几个触发链,在一个周末的特定时间开火。由于我可以使用的20个定时触发器的限制,我已经将它们链锁起来了。

随机地,链上新创建的触发器将被禁用,因此无法运行。很明显,这破坏了整个链条,完全搞砸了我想要达到的目标。

我想我在代码中创建新触发器的时候,在排序上可能有问题,但情况似乎并非如此。

我想知道是否删除它调用的脚本中的触发器可能是问题的原因--但我想不出另一种方法来编写它。

下面是链码的一部分:

代码语言:javascript
运行
复制
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触发器。

下面是删除触发器的代码:

代码语言:javascript
运行
复制
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链接--但答案并不适用于我。我是唯一的用户,也是唯一能够访问电子表格的人。

EN

回答 1

Stack Overflow用户

发布于 2020-03-22 03:46:55

我的解决办法是this问题的答案。

基本上,我只是将代码内置到现有的触发器中,该触发器检查日期/时间,并在满足条件时运行特定函数。不再需要触发器链,也不需要以编程方式创建任何额外的触发器(初始设置除外)。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/60789236

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档