javascript - 如何在准确的时间运行谷歌应用程序脚本?

标签 javascript json google-apps-script google-sheets

目前,我想在准确的时间运行我的谷歌应用程序脚本。我已经阅读了一些关于这个问题的文章,我决定遵循这篇文章 It's possible run Google Sheets script Exact Time Everyday? 中的解决方案。 .

但是,每次时间触发器只能工作一次。第二次触发时会显示错误。我在谷歌上搜索了这个问题,大多数人都说这是谷歌 v8 的错误。( https://issuetracker.google.com/issues/150756612 )。

因此,我决定将我的代码降级为 ES5 因为这是帖子( https://issuetracker.google.com/issues/150756612 )中唯一的解决方案。但是,我面临着更改 spread operator(...) 的问题。 ES5

这是我的代码:

function runTrigger(hours,minutes) {
  
  var today_D=new Date();
  var year=today_D.getFullYear();
  var month=today_D.getMonth();
  var day=today_D.getDate();
  
  day=day+1; 
  
  var pars=[year,month,day,hours,minutes];
  
  var schedule_date=new Date(...pars);
  var hours_reamain=Math.abs(schedule_date - today_D)/36e5;
  
  ScriptApp.newTrigger("testFunction")
   .timeBased()
   .after(hours_reamain*60*60*1000)
   .create()  
}

function deleteTrigger() {
  var triggers=ScriptApp.getProjectTriggers();
  
  var ssId="1d5P4ohgSLtOzuInxq1IYQUsB4GybeYhth5Gj21RI3rA";
  var ss=SpreadsheetApp.openById(ssId);
  
  for(var i=0 ; i< triggers.length ; i++) {
    ss.appendRow([new Date() ,JSON.stringify(triggers[i]), JSON.stringify(triggers[i].getHandlerFunction()) , JSON.stringify(triggers[i].getEventType()) , JSON.stringify(triggers[i].getTriggerSource())])
    if(triggers[i].getHandlerFunction() === "testFunction") {
      ScriptApp.deleteTrigger(triggers[i]);
    }
  }
}

function setTrigger() { 
    deleteTrigger();
    runTrigger(1,35);
}

function testFunction() {
  //some code at here
  setTrigger();
}

有人可以教我如何更改 ...(spread operator) ES5

最佳答案

这是一个 JavaScript Date() 构造函数

 var schedule_date=new Date(year,month,day,hours,minutes);

Date() constructor

关于javascript - 如何在准确的时间运行谷歌应用程序脚本?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/72230966/

相关文章:

java - 线程 "main"java.lang.NullPointerException 中的异常 - Json 到 Java

json - 如何使用 ng-repeat 深入分析 JSON

javascript - Javascript运行环境中的任务队列(宏任务队列)是一个集合数据结构吗?

javascript - mootools 添加一个 id

javascript - 从 firebase 数据库检索数据时出现问题

google-apps-script - 在 Google 表格中,我如何编写默认缩放操作的脚本?

javascript - 格式化从电子表格中读取的数字

javascript - 为什么要在 $() 中定义函数?

json - 无法解析 JSON-LD 标记。发现格式错误的 JSON : '

javascript - Google Apps 脚本错误值