如何识别要删除的时钟触发器?



我想通过精确标识删除在指定时间运行一次的 ClockTrigger,以免影响其他触发器。所以我尝试 1( 从注册的触发器获取触发器的运行日期和 2( 获取实际正在运行但找不到任何方法的触发器 ID。我怎样才能让其中一个或两个都发生?

这是我显示项目触发器的方式:

function displayProjectTriggers() {
var tA=ScriptApp.getProjectTriggers();
var html="<style>th,td{border:1px solid black;padding:2px;margin:2px;}</style><table><tr><th>Handler Function</th><th>Trigger Type</th><th>Unique ID</th><td>&nbsp;</td></tr>";
for(let i=0;i<tA.length;i++) {
html+=Utilities.formatString('<tr><td>%s</td><td>%s</td><td>%s</td><td><input type="button" value="Delete" onClick="google.script.run.withSuccessHandler(function(){google.script.run.displayProjectTriggers();}).deleteTrigger('%s');" /></td></tr>',tA[i].getHandlerFunction(),tA[i].getEventType(),tA[i].getUniqueId(),tA[i].getHandlerFunction());
}
html+='</table><br /><input type="button" value="Close" onClick="google.script.host.close();" />';
var userInterface=HtmlService.createHtmlOutput(html).setWidth(800);
SpreadsheetApp.getUi().showModelessDialog(userInterface, 'Project Triggers');
}
function deleteTriggerById(id) {
var triggers=ScriptApp.getProjectTriggers();
for (var i=0;i<triggers.length;i++){
if (id==triggers[i].getUniqueId()){
ScriptApp.deleteTrigger(triggers[i]);
break;
}
}
}
function deleteTrigger(triggerName){
var triggers=ScriptApp.getProjectTriggers();
for (let i=0;i<triggers.length;i++){
if (triggerName==triggers[i].getHandlerFunction()){
ScriptApp.deleteTrigger(triggers[i]);
}
}
}

最新更新