【问题标题】:This add-on has created too many time-based triggers in this document for this Google user account此插件在此文档中为此 Google 用户帐户创建了太多基于时间的触发器
【发布时间】:2017-04-10 00:40:02
【问题描述】:

我收到标题中的错误 - 此插件在此文档中为此 Google 用户帐户创建了太多基于时间的触发器

当我运行插件时。

插件用于创建时间触发器。我在 3 个文档中一起创建了 7 个触发器。

现在我无法在任何文档中创建新触发器。

ScriptApp.newTrigger("函数") .timeBased() .atHour(5) .everyDays(1) 。创造();

【问题讨论】:

    标签: google-apps-script triggers google-sheets google-spreadsheet-api


    【解决方案1】:

    在调用创建新触发器的函数时,最好删除同一函数内所有现有的同名触发器。否则,您可能会在每次运行该函数时创建一个新触发器。

    另一个不错的选择是检查现有触发器并仅在不存在时创建新触发器。

    function createTrigger(fnName) {
    
      var triggers = ScriptApp.getProjectTriggers();
      var triggerExists = false;
    
      for (var i = 0; i < triggers.length; i++) {
        if (triggers[i].getHandlerFunction() === fnName) {
          triggerExists = true;
          break;
        }
      }
    
      if (!triggerExists) {
        ScriptApp.newTrigger(fnName).timebased().everyHours(1).create;
      } 
    
    }
    

    【讨论】:

    • 我可以使用在我的域内部发布的插件创建多个触发器(每张表)吗?等待回复阿米特
    【解决方案2】:

    您应该只需要运行一次即可创建触发器。在脚本编辑器中,转到编辑>所有触发器,您应该会看到脚本的所有触发器。您将看到从该 newTrigger 函数创建的多个相同触发器。删除所有重复项。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-11-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多