我是否可以使用基于时间的触发器来运行可在Google Apps脚本中触发另一个基于时间的触发器的功能?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了我是否可以使用基于时间的触发器来运行可在Google Apps脚本中触发另一个基于时间的触发器的功能?相关的知识,希望对你有一定的参考价值。
我已经尝试过这种方式,但是当第二个触发器关闭时,由于未知原因它被禁用了。
//the first time based trigger that is supposed to run once a day
function startTimeTrigger()
ScriptApp.newTrigger('runAuto')
.timeBased()
.atHour(14)
.nearMinute(25)
.everyDays(1)
.create();
;
function runAuto()
// resets the loop counter if it's not 0
refreshUserProps();
// a function that creates the second time based trigger
createTrigger();
function createTrigger()
// Trigger every 1 minute
ScriptApp.newTrigger('addStats')
.timeBased()
.everyMinutes(1)
.create();
答案
是,仅当您删除使用相同名称的旧函数时:
function startTimeTrigger()
ScriptApp.newTrigger('runAuto')
.timeBased()
.atHour(14)
.nearMinute(25)
.everyDays(1)
.create();
;
function runAuto()
// resets the loop counter if it's not 0
refreshUserProps();
// a function that creates the second time based trigger
createTrigger();
function createTrigger()
deleteTrigger('addStats')
// Trigger every 1 minute
ScriptApp.newTrigger('addStats')
.timeBased()
.everyMinutes(1)
.create();
function deleteTrigger(key)
var allTriggers = ScriptApp.getProjectTriggers();
for (var i = 0; i < allTriggers.length; i++)
if (allTriggers[i].getHandlerFunction() === key)
ScriptApp.deleteTrigger(allTriggers[i]);
另一答案
您可能会考虑用来检查同一功能是否还有其他触发器的功能。
function isTrigger(funcName)
var r=false;
if(funcName)
var allTriggers=ScriptApp.getProjectTriggers();
for (let i=0;i<allTriggers.length;i++)
if(funcName==allTriggers[i].getHandlerFunction())
r=true;
break;
return r;
以上是关于我是否可以使用基于时间的触发器来运行可在Google Apps脚本中触发另一个基于时间的触发器的功能?的主要内容,如果未能解决你的问题,请参考以下文章
是否有可在 Java/Android 中使用的 PostMessage 等效项?
有什么方法可以根据文件的存在而不是具体时间来触发cron任务的运行?