编辑后运行触发器X时间量

big*_*can 1 google-apps-script

我希望编辑发生获得一个触发器来运行指定的时间.

我想我可以为这个功能组合编辑触发器和基于时间的触发器,但不清楚如何.

提供一些额外的细节.

我有一张Google表格,用于跟踪我的胰岛素用量.我应该在服用胰岛素后2小时检查我的血糖.

当我管理胰岛素时,我进入谷歌表格,时间/金额/等...当我进入此条目时,我想创建一个触发器,将在2小时内运行,向我发送电子邮件通知作为提醒检查我的血糖再次出现并重新进入.

Mul*_*enb 5

这就是我在Google App Script中使用时间触发器的方法.

用于创建时间触发器的函数.

function createTriggger(name,action,time){
//  Time is in minutes
  var trigger = ScriptApp.newTrigger(action)
  .timeBased()
  .after(time*60*1000)
  .create();
  var triggerID = trigger.getUniqueId();

//  Store trigger id to delete the trigger once it has executed
  PropertiesService.getScriptProperties().setProperty(name, triggerID);
};
Run Code Online (Sandbox Code Playgroud)

name是存储触发器ID的属性的名称,因此您可以在执行后删除触发器.action是您希望触发器执行的函数的名称,time以分钟为单位.

在函数的最后一行,您希望触发器执行,使用此行来获取触发器ID并从触发器列表中删除它.将您的触发器ID属性的名称放入name.

var triggerID = PropertiesService.getScriptProperties().getProperty(name)
deleteThisOne(triggerID)
Run Code Online (Sandbox Code Playgroud)

这是删除功能:

function deleteThisOne(id){
  var triggers = ScriptApp.getProjectTriggers();
  for(var i=0;i<triggers.length;i++){
    if(triggers[i].getUniqueId() == id){
      ScriptApp.deleteTrigger(triggers[i]);
      break;
    };
  };
};
Run Code Online (Sandbox Code Playgroud)

查看google脚本Installable Triggers for Limitations