首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >编辑后运行触发器X时间

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

Stack Overflow用户
提问于 2016-11-21 20:53:11
回答 3查看 1.2K关注 0票数 1

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

我想我可以将编辑触发器和基于时间的触发器结合起来,但不清楚是如何实现的。

提供一些额外的细节。

我有一个谷歌页,我在那里跟踪我的胰岛素使用情况。我应该在注射胰岛素2小时后检查血糖。

当我给胰岛素注射时,我会在谷歌页面,时间/数量/等等.当我做这个条目,我想创建一个触发器,将在2小时内运行,向我发送电子邮件通知作为提醒,再次检查我的血糖,并作出一个新的条目。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2016-11-22 18:31:18

这就是我在中使用时间触发器的方式。

函数来创建时间触发器。

代码语言:javascript
复制
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);
};

name是存储触发器id的属性的名称,因此您可以在触发器执行后删除它。action是要执行触发器的函数的名称,time在几分钟内。

在要执行触发器的函数的最后一行上,使用此行获取触发器id并将其从触发器列表中删除。将触发器id属性的名称放在name中。

代码语言:javascript
复制
var triggerID = PropertiesService.getScriptProperties().getProperty(name)
deleteThisOne(triggerID)

以下是删除功能:

代码语言:javascript
复制
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;
    };
  };
};

查看局限性的google脚本Installable触发器

票数 5
EN

Stack Overflow用户

发布于 2016-11-21 21:32:21

当您的编辑触发器触发时,您可以使用ClockTrigger -参见ClockTriggerBuilder文档和示例,该文档和示例允许您设置相对于当前执行时间的时间,或者在绝对时间设置时间。

票数 0
EN

Stack Overflow用户

发布于 2016-11-22 05:25:01

你可以利用这样的工作:

在电子表格中的某个角落单元格中设置'0‘值,这是你永远不会修改的。把那列藏起来。

在电子表格上设置onEdit触发器并编写其函数,该函数设置值“0”。

设置另一个触发器,该触发器每10分钟触发一次,使该单元格值每次增加10。还将此添加到该函数中:

代码语言:javascript
复制
if(cellValue%120 == 0)
{
    setReminder(); //function to send you reminder
    cellValue = 0;
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/40729169

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档