【问题标题】:Cron like Apps Script Trigger function类似 Apps Script Trigger 功能的 Cron
【发布时间】:2021-03-25 15:38:22
【问题描述】:

我有一个函数,我每 15 分钟通过一个触发器在 Apps 脚本中运行一次。这显然太多了,因为它在不需要的周末运行。我希望能够仅在周一至周五每十五分钟运行一次此脚本。我知道您可以通过 cron 作业来完成此操作,但我正在尝试确定是否可以通过 Apps Scripts Triggers 来完成此操作。

文档未对此进行清除,或者我可能遗漏了一些东西。

有谁知道这是否可以通过 Google Apps 脚本完成?

【问题讨论】:

  • 是的,只需检查脚本中的适当日期即可。 Date().getDay() Sun-Sat 0 - 6 不要在 0 或 6 上运行该函数,或者从 1-5 运行你选择的函数
  • @Cooper 我不确定我是否在关注。这是在脚本中自定义编写的,就像实际触发器一样吗?
  • 这是javascript。如果你想学习谷歌应用脚​​本,你真的需要 javascript
  • @Cooper 我知道,但是,我不确定将它放在哪里。那是在同一个函数中吗?
  • 请按照How to Ask 中的建议,展示您尝试过的内容并添加对搜索工作的简要说明。

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


【解决方案1】:
function myfunc() {
  let dt=new Date().getDay();
  if(dt>0 && dt<6) {
  //do stuff here
  }
}

Date().getDay()

【讨论】:

    【解决方案2】:

    您可以通过编程方式创建类似的触发器(真正的触发器)。

    例子:

    function createTriggers() {
    
    var triggers = ScriptApp.getProjectTriggers();
    if(triggers.length == 0){
      ScriptApp.newTrigger('myFunction')
          .timeBased()
          .onWeekDay(ScriptApp.WeekDay.MONDAY)
          .everyMinutes(15)
          .create();
          
          ScriptApp.newTrigger('myFunction')
          .timeBased()
          .onWeekDay(ScriptApp.WeekDay.TUESDAY)
          .everyMinutes(15)
          .create();
          
          ScriptApp.newTrigger('myFunction')
          .timeBased()
          .onWeekDay(ScriptApp.WeekDay.WEDNESDAY)
          .everyMinutes(15)
          .create();
          
          ScriptApp.newTrigger('myFunction')
          .timeBased()
          .onWeekDay(ScriptApp.WeekDay.THURSDAY)
          .everyMinutes(15)
          .create();
          
          ScriptApp.newTrigger('myFunction')
          .timeBased()
          .onWeekDay(ScriptApp.WeekDay.FRIDAY)
          .everyMinutes(15)
          .create();
          }}

    文档here

    【讨论】:

    • @Cooper 我认为它不那么浪费,因为它只在 M-F 上运行。如果有人使用带有 .getDay() 的 if 子句,那么它也会在 Sat 和 Sun 上被调用,只是实际上并没有运行完整的脚本。检查触发器是否存在的好主意。我刚刚添加了那个。如果 OP 正在使用其他触发器,则它必须是一个更复杂的 if 语句,但如果这些是唯一的,那应该可以工作。
    • 我实际上只是在想这个问题似乎无关紧要。触发配额是每天,不是吗?我认为 90 分钟/天或 6 小时/天取决于帐户。
    • 哎呀同时评论了。嗯,我想我不明白。如何更多地使用触发配额?它应该更少使用它,尽管几乎没有,因为你的运行时间基本上为零。我想你的回答应该一样好,虽然从技术上讲不是发帖人要求的。
    • 这就是我这样说的原因:“如果 OP 使用其他触发器,则它必须是更复杂的 if 语句,但如果只有这些触发器,那应该可以工作。”有了这个文档,他们应该能够弄清楚:developers.google.com/apps-script/guides/triggers/installable
    猜你喜欢
    • 2023-03-08
    • 1970-01-01
    • 2016-01-08
    • 1970-01-01
    • 1970-01-01
    • 2015-03-09
    • 2012-12-15
    • 2012-05-20
    • 1970-01-01
    相关资源
    最近更新 更多