2时间触发器 - Google应用脚本

时间:2016-05-13 08:16:14

标签: google-apps-script triggers google-apps-script-addon

我查看了谷歌应用程序脚本可安装触发器在线文档(https://developers.google.com/apps-script/support),其中一个示例显示了如何创建2个时间触发器。

function createTimeDrivenTriggers() {
  // Trigger every 6 hours.
  ScriptApp.newTrigger('myFunction')
      .timeBased()
      .everyHours(6)
      .create();

  // Trigger every Monday at 09:00.
  ScriptApp.newTrigger('myFunction')
      .timeBased()
      .onWeekDay(ScriptApp.WeekDay.MONDAY)
      .atHour(9)
      .create();
}

我的代码:

function createTimeDrivenTriggers() {
  // Trigger every 1 hours.
  ScriptApp.newTrigger('MainFunctionDaily')
      .timeBased()
      .everyHours(1)
      .create();

  // Trigger every Friday at 13:00.
  ScriptApp.newTrigger('MainFunctionWeekly')
      .timeBased()
      .onWeekDay(ScriptApp.WeekDay.FRIDAY)
      .atHour(13)
      .create();
}

然而,当我尝试创建触发器时,我收到错误:

此附加组件在此文档中为此Google用户帐户创建了太多基于时间的触发器

请告知

2 个答案:

答案 0 :(得分:1)

在Google Apps脚本附加组件上,无法通过代表同一用户运行的函数在同一文档上创建两个相同类型的触发器。

来自https://developers.google.com/apps-script/guides/triggers/installable#limitations(重点是我):

  

限制
  附加组件中的可安装触发器有几个限制:

     

每个用户,每个用户,每个插件只能每种类型只有一个触发器   文献。例如,在给定的电子表格中,给定的用户只能   有一个编辑触发器,尽管用户也可以提交表单   触发或同一电子表格中的时间驱动触发。

替代方案是

  • 使用不同的帐户创建每个触发器。
  • 为每个必需的触发器创建多个附加组件
  • 使用常规脚本而不是附加组件。

答案 1 :(得分:-1)

两个可能的问题:

  1. 你的触发器互相矛盾
  2. 您可能需要在第二个触发器之前添加创建功能。
  3. 您可能只需要选择一个触发器,但可以试试这个:

    function createTimeDrivenTriggers() {
      // Trigger every 6 hours.
      ScriptApp.newTrigger('myFunction')
          .timeBased()
          .everyHours(6)
          .create();
    }
    
    function createTimeDrivenTriggers() {
      // Trigger every Monday at 09:00.
      ScriptApp.newTrigger('myFunction')
          .timeBased()
          .onWeekDay(ScriptApp.WeekDay.MONDAY)
          .atHour(9)
          .create();
    }