首页 文章

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

提问于
浏览
0

我在线查看了谷歌应用程序脚本可安装触发器文档(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 回答

  • 1

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

    https://developers.google.com/apps-script/guides/triggers/installable#limitations(强调我的):

    限制有几个限制适用于附加组件中的可安装触发器:每个附加组件每个文档每个类型只能有一个触发器 . 例如,在给定的电子表格中,给定用户只能有一个编辑触发器,尽管用户也可以在同一电子表格中具有表单提交触发器或时间驱动触发器 .

    替代方案是

    • 使用不同的帐户创建每个触发器 .

    • 为每个必需的触发器创建一个附加组件

    • 使用常规脚本而不是加载项 .

  • -1

    两个可能的问题:

    • 你的触发器互相矛盾

    • 您可能需要在第二个触发器之前添加创建功能 .

    您可能只需要选择一个触发器,但您可以尝试这样做:

    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();
    }
    

相关问题