Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/api/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Google apps script 如何创建从上午11点到下午2点运行的时间驱动触发器?_Google Apps Script_Triggers - Fatal编程技术网

Google apps script 如何创建从上午11点到下午2点运行的时间驱动触发器?

Google apps script 如何创建从上午11点到下午2点运行的时间驱动触发器?,google-apps-script,triggers,Google Apps Script,Triggers,我正在尝试构建一个脚本,它应该在每周二、周三和周四的上午11点到下午2点之间以及每10分钟之后运行一次 例如,如果今天是星期二。。然后脚本将在上午11点开始执行,每10分钟执行一次,然后在当天下午2点停止执行 现在,我尝试以编程方式设置触发器,如下所示: function startCustomTrigger() { //first remove all existing triggers - for safty removeTriggers(false); //scr

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

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

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

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分钟运行一次
  • 你每周还需要三次触发器;每一个都要在三个 关闭每10分钟运行一次的触发器需要几天,否则,它们将永远继续运行
所以,你需要七个触发器。这将创建一个触发器,从上午10点开始每10分钟运行一次。一个触发器将在上午10点启动并无限期运行(直到您将其关闭)。三个触发器停止每10分钟运行一次的触发器

应手动设置将在特定日期运行的触发器。因此,其中6个触发器将手动设置。需要从代码中创建并删除每10分钟运行一次的触发器


作为“周计时器”的六个触发器,要在特定的一天运行,只需运行一次即可创建每10分钟运行一次的触发器。我会比你希望10分钟触发器的运行时间提前一小时,以确保它们被设置为运行。

你也可以考虑每10分钟运行一个触发器,在触发器函数中,你可以检查时间和工作日。仅当满足所有条件时才执行代码,否则它将返回而不执行任何操作

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

  }

}
函数startCustomTrigger()
{
ScriptApp.newTrigger('StartProcess').timeBased().everyMinutes(10.create();
}
函数StartProcess(){
变量日期=新日期();
var day=date.getDay();
var hrs=date.getHours();

如果((day>=2)&&(day=11)&&&(hrs)感谢您的回复。实际上我正在使用您的Gmail合并脚本(免费版本)并希望对脚本进行一些修改,使其仅在某个时间范围内运行。我将尝试您的建议,如果发现任何问题,我将在此处再次提出问题。希望这对您没有问题。您好,谢谢您的回复。我已设置了一些触发器,如您所建议的,但在Amit Agarwal回答我的问题后,我感觉到他的解决方案on将很容易实现。如果出现任何问题,将尝试再次提出问题。再次感谢,我感谢您为回答我的问题所做的努力。谷歌触发器配额为每天1小时。没有得到它…您能解释一下这意味着什么吗?这是否意味着如果我的脚本持续运行,那么它将运行f或者最多1小时,然后将自动停止?我想在周二、周三和周四每10分钟后上午11点到下午2点之间运行脚本…这会导致配额限制吗?如果我执行Amit的建议会怎么样…因此脚本将在每天10分钟后自动停止,但我有条件检查当天和主要的人力资源函数将仅按所需的计划执行……这是否也会导致配额限制问题?