如何创建从上午 11 点到下午 2 点运行的时间驱动触发器? [英] How to create a time-driven trigger that runs from 11 am to 2 pm?

查看:16
本文介绍了如何创建从上午 11 点到下午 2 点运行的时间驱动触发器?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在尝试构建一个脚本,该脚本应在每周二、周三和周四上午 11 点到下午 2 点之间以及每 10 分钟之后运行.

I am trying to build a script that should run every Tuesday, Wednesday, and Thursday between 11 am to 2 pm and after every 10 minutes.

例如如果今天是星期二..那么脚本将从早上 11 点开始执行,每 10 分钟后执行一次,然后应该在当天下午 2 点停止执行.

For e.g. If today is Tuesday.. then the script will start executing at 11 am morning and will execute after every 10 min and then should stop executing at 2 pm on that day.

现在我正在尝试以编程方式设置触发器,如下所示:

Now I am trying with programmatically setting the triggers like below:

function startCustomTrigger()
{
  
  //first remove all existing triggers - for safty
   removeTriggers(false);
  
  //script will run every minute defined  
  ScriptApp.newTrigger('StartProcess').timeBased().onWeekDay(ScriptApp.WeekDay.TUESDAY).onWeekDay(ScriptApp.WeekDay.WEDNESDAY).onWeekDay(ScriptApp.WeekDay.THURSDAY).atHour(11).everyMinutes(10).create();
  
  
  //script will run every minute defined  
  ScriptApp.newTrigger('StopProcess').timeBased().onWeekDay(ScriptApp.WeekDay.TUESDAY).onWeekDay(ScriptApp.WeekDay.WEDNESDAY).onWeekDay(ScriptApp.WeekDay.THURSDAY).atHour(2).create();
 
}


function StopProcess()
{
   //first remove all existing triggers - for safety
   removeTriggers(false);`enter code here`
  
  //script will run every minute defined  
  ScriptApp.newTrigger('startCustomTrigger').timeBased().onWeekDay(ScriptApp.WeekDay.TUESDAY).onWeekDay(ScriptApp.WeekDay.WEDNESDAY).onWeekDay(ScriptApp.WeekDay.THURSDAY).atHour(10).create();
  
}

推荐答案

您还可以考虑使用一个每 10 分钟运行一次的触发器,在触发器函数中,您可以查看时间和工作日.代码仅在满足所有条件时才执行,否则不执行任何操作就返回.

You can also consider having a single trigger that runs every 10 minutes and, inside the trigger function, you can check the time and weekday. The code is executed only if all conditions are met else it returns without doing anything.

function startCustomTrigger()
{
  ScriptApp.newTrigger('StartProcess').timeBased().everyMinutes(10).create();
}

function StartProcess() {

  var date = new Date();  
  var day = date.getDay();
  var hrs = date.getHours();

  if ((day >= 2) && (day <= 4) && (hrs >= 11) && (hrs <= 14)) {

     // Add your code here

  }

}

这篇关于如何创建从上午 11 点到下午 2 点运行的时间驱动触发器?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆