如何将谷歌脚本执行时间限制为1分钟?

时间:2016-04-16 11:24:01

标签: google-apps-script

如何在1分钟后设置一个时间限制来结束运行?

情况:我的脚本每天运行5分钟。我的脚本超出了3小时的每日计算时间限制。

所以,我需要创建一个调用my functon A的函数(很长时间,所以我不想在这里发布),但只允许它最多运行1分钟,然后结束。

我已广泛搜索,但所有其他解决方案都适用于循环。然而,导致超时的我的功能不是循环函数。我不介意功能没有成功完成。

1 个答案:

答案 0 :(得分:1)

你需要一个循环,执行一段时间只能运行几秒钟的短代码;或者你需要添加多行代码,每隔“经常”检查一次状态。

要获得开始时间,您可以使用:

var startTime = Date.now(); //Get milliseconds from a date in past

作为测试,您可以运行以下功能,然后查看日志:

function exampleCode() {

  var startTime = Date.now();
  Logger.log(startTime);

  Utilities.sleep(1000); //Stop the code for 1 second

  var timeNow = Date.now();
  Logger.log(timeNow);

  var elapsedTime = timeNow - startTime;
  Logger.log(elapsedTime);
};

当然,您不希望重新分配startTime。所以把它放在代码的顶部,不要重新计算它。

停止代码,1分钟,即60000毫秒

if (elapsedTime > 60000) {return}; //Quit after 1 minute

您可以创建一个功能来检查已用时间:

function elapsedTime() {
  var timeNow = Date.now();     
  var elapsedTime = timeNow - startTime;
  if (elapsedTime > 60000) {return 'die'}; //return 'die' if longer than 1 minute
};

if (elapsedTime() === 'die') {return};//Quit after 1 minute