我正在使用google脚本为gmail创建一个脚本,该脚本会将超过150天的电子邮件标记为即将删除。因为脚本会在x个时间后超时,所以我会在这段时间之前处理尽可能多的电子邮件,然后设置一个新的触发器,让脚本在2分钟内停止运行。
我担心的是,在设置并运行新触发器之后,即使它是特定的日期和时间触发器,它仍会显示在“当前应用触发器”中。如果这种情况经常发生一段时间(例如一个月),它会导致“此脚本有太多触发器。必须先从脚本中删除触发器,然后才能添加更多内容。错误?
或者过期的特定日期和时间触发器会在某个时候自动删除吗?
有没有人知道这种情况的最佳做法?
谢谢。
答案 0 :(得分:1)
Apps脚本每个用户/脚本有20个触发器。 为了解决这个问题,我建议使用ScriptApp类在脚本运行时删除任何旧的触发器。 ScriptApp.getProjectTriggers()可用于获取项目触发器的数组。如果您只是在这种情况下使用触发器,并且每次运行脚本时都删除它们,那么您的代码将如下所示:
function triggered(e){
var triggers = ScriptApp.getProjectTriggers();
try{
ScriptApp.deleteTrigger(triggers[0]);
}catch(e){
}
mainLogic()
}