2016-03-08 100 views
0

我有3个功能需要在一夜之间运行(当没有人使用我的电子表格时)。我的约束是之前函数2点开始Google Apps脚本,按顺序运行时间触发器

  • 功能1必须完成,功能2功能3前必须完成启动
  • 每一个过程,在最坏情况下可能需要90至120秒完成

我知道,每个脚本在服务器终止线程之前的最长执行时间为6分钟。根据我的经验,我通常会在5分钟左右看到这种情况。

我不打算把所有3函数放到一个函数中,因为最糟糕的最坏情况(3x 120秒)可能让服务器终止线程。

我打算做什么是调度这些功能一个接一个通宵 enter image description here

我的问题后:这些间隔61分钟或60个mintutes? EG Function2和Function3是否可以在01:00开始执行?

我想我可以安排他们在23:00-00:00,01:00-02:00和03:00-04:00开火。我希望找到一个不涉及5小时(最坏的情况下)完成。

感谢

回答

1

您可以根据需要创建触发器。您不需要依赖基于菜单的触发器。有更多的灵活性ClockTriggerBuilder

例如,对于你的情况,你可以这样做:

function createTimeDrivenTriggers() { 


    // Trigger Function 1 everyday at 23:00. 

    ScriptApp.newTrigger('Function 1') 
     .timeBased() 
     .everyDays(1) 
     .atHour(23) 
     .create(); 

// Trigger Function 2 everyday at 1:00. 
    ScriptApp.newTrigger('Function 2') 
     .timeBased() 
     .everyDays(1) 
     .atHour(1) 
     .create(); 

// Trigger Function 3 everyday at 2:00. 
    ScriptApp.newTrigger('Function 3') 
     .timeBased() 
     .everyDays(1) 
     .atHour(2) 
     .create(); 
} 

请登陆。

+0

谢谢Br。萨彦。 – onji

+0

谢谢Br。萨彦。 我应该说过,但是我需要这个能够在我没有登录到我的电脑(例如在度假,周末)出于某种原因运行。 我试过之前编程触发器,但然后我需要它们存在于一个函数内,因此需要调用拥有函数。我可以在上面的示例中调用拥有函数createTimeDrivenTriggers(),但是一旦我在某个时间离开本周,触发器就会停止触发 – onji

+0

它与您正在登录或完全没有关系!你希望谁在早上2点登录他们的帐户,以运行他们的剧本?你得到的错误是什么?什么是完整的代码?然后我们可以看到。而且,你只需要运行一次触发器功能。一旦设置了触发器,它应该在适当的时候自动调用函数。如果有的话,还可以为我们提供'Logger.log()'条目。 –

相关问题