Google apps script 编辑后运行触发器X时间量
我想获得一个触发器,在编辑发生后运行指定的时间 我在想,我可以有人结合编辑触发器和基于时间的触发器来实现这个功能,但不清楚如何实现 提供一些额外的细节 我有一个谷歌表格,可以跟踪我的胰岛素使用情况。我应该在注射胰岛素2小时后检查血糖Google apps script 编辑后运行触发器X时间量,google-apps-script,Google Apps Script,我想获得一个触发器,在编辑发生后运行指定的时间 我在想,我可以有人结合编辑触发器和基于时间的触发器来实现这个功能,但不清楚如何实现 提供一些额外的细节 我有一个谷歌表格,可以跟踪我的胰岛素使用情况。我应该在注射胰岛素2小时后检查血糖 当我注射胰岛素时,我会在谷歌表格中输入时间/数量等信息。。。当我输入此条目时,我想创建一个触发器,该触发器将在2小时内运行,向我发送电子邮件通知,提醒我再次检查血糖并输入新条目。当编辑触发器触发时,您可以使用时钟触发器-请参阅文档和示例,它允许您设置相对于当前执行时
当我注射胰岛素时,我会在谷歌表格中输入时间/数量等信息。。。当我输入此条目时,我想创建一个触发器,该触发器将在2小时内运行,向我发送电子邮件通知,提醒我再次检查血糖并输入新条目。当编辑触发器触发时,您可以使用
时钟触发器
-请参阅文档和示例,它允许您设置相对于当前执行时间的时间或绝对时间。当编辑触发器触发时,您可以使用时钟触发器
-请参阅文档和示例,它允许您设置相对于当前执行时间的时间,或者在绝对时间。您可以使用如下方法:
在电子表格的某个角单元格中设置“0”值,您永远不会修改该值。隐藏该列
在电子表格上设置OneEdit触发器并编写其函数,该函数设置值“0”
设置另一个每10分钟触发一次的触发器,使该单元格值每次增加10。还要将此添加到该函数中:
if(cellValue%120 == 0)
{
setReminder(); //function to send you reminder
cellValue = 0;
}
您可以使用这样的工作环境: 在电子表格的某个角单元格中设置“0”值,您永远不会修改该值。隐藏该列 在电子表格上设置OneEdit触发器并编写其函数,该函数设置值“0” 设置另一个每10分钟触发一次的触发器,使该单元格值每次增加10。还要将此添加到该函数中:
if(cellValue%120 == 0)
{
setReminder(); //function to send you reminder
cellValue = 0;
}
这就是我在谷歌应用程序脚本中使用时间触发器的方式 函数创建时间触发器
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
中
var triggerID = PropertiesService.getScriptProperties().getProperty(name)
deleteThisOne(triggerID)
以下是删除功能:
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;
};
};
};
函数deleteThisOne(id){
var triggers=ScriptApp.getProjectTriggers();
对于(var i=0;i这是我在Google应用程序脚本中使用时间触发器的方式
函数创建时间触发器
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);
};
此名称
是存储触发器id的属性的名称,因此您可以在触发器执行后删除它。操作
是您希望触发器执行的函数的名称,时间
以分钟为单位
在要执行触发器的函数的最后一行,使用此行获取触发器id并将其从触发器列表中删除。将触发器id属性的名称放入name
var triggerID = PropertiesService.getScriptProperties().getProperty(name)
deleteThisOne(triggerID)
以下是删除功能:
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;
};
};
};
函数deleteThisOne(id){
var triggers=ScriptApp.getProjectTriggers();
对于(var i=0;i