use*_*736 5 triggers google-apps-script
如何通过触发的函数名称而不是triggerarray id以编程方式删除Google Apps脚本基于时间的触发器?
我正在创建一个触发器,稍后我想按名称删除触发器.我试过这个:
ScriptApp.deleteTrigger("myfunction");
Run Code Online (Sandbox Code Playgroud)
但它不起作用.我不想使用这种方法:
var triggers = ScriptApp.getProjectTriggers();
ScriptApp.deleteTrigger(triggers[0]);
Run Code Online (Sandbox Code Playgroud)
由于我同时有多个触发器,可能会删除错误的触发器!那么如何通过名称而不是触发器数组ID来删除触发器?
function demo(){
ScriptApp.newTrigger("myfunction")
.timeBased()
.everyMinutes(1)
.create();
}
function myfunction(){
// do some stuff here then stop the trigger by name
ScriptApp.deleteTrigger("myfunction");
}
}
Run Code Online (Sandbox Code Playgroud)
Bry*_*n P 10
如果遍历所有触发器,则可以使用以下命令访问处理函数名称:
var triggers = ScriptApp.getProjectTriggers();
for ( var i in triggers ) {
var funcName = triggers[i].getHandlerFunction()
}
Run Code Online (Sandbox Code Playgroud)
......如文档中所示.
小智 6
// Deletes all triggers in the current project.
var triggers = ScriptApp.getProjectTriggers();
for (var i = 0; i < triggers.length; i++) {
ScriptApp.deleteTrigger(triggers[i]);
}
Run Code Online (Sandbox Code Playgroud)
小智 5
您可以根据唯一的 id\xef\xbc\x8ccode 在触发触发器时精确删除它,例如:
\nfunction trigger4SendMediaGroup(event) {\ntry {\n var triggerUid = event.triggerUid;\n var triggers = ScriptApp.getProjectTriggers();\n if(triggers && triggers.length > 0){\n triggers.forEach(item=>{\n if(item.getUniqueId() == triggerUid){\n ScriptApp.deleteTrigger(item);\n }\n })\n }\n //other process\nRun Code Online (Sandbox Code Playgroud)\n
| 归档时间: |
|
| 查看次数: |
6550 次 |
| 最近记录: |