动态设置 google 脚本时间驱动的计时器和 gmail 中的计时器错误太多

Dynamically set google script time driven timers and too many timers error in gmail

我正在使用 gmail 的 google 脚本来创建一个脚本,将超过 150 天的电子邮件标记为即将删除。因为脚本会在 x 时间后超时,我会在该时间之前处理尽可能多的电子邮件,然后为脚本设置一个新触发器以继续 运行 它在 2 分钟后停止的地方。

我担心的是,在设置并运行新触发器后,它仍然显示在 'current apps triggers' 中,即使它是一个特定的日期和时间触发器。如果这种情况在一段时间内经常发生,比如一个月,是否会导致此错误:

'This script has too many triggers. Triggers must be deleted from the script before more can be added.'

或者过期的特定日期和时间触发器会在某个时候自动删除吗?

有人知道这种情况的最佳做法吗?

Apps 脚本每个 user/script 有 20 个触发器的限制。 为了解决这个问题,我建议在脚本 运行 时使用 ScriptApp class 删除所有旧触发器。 ScriptApp.getProjectTriggers() 可用于获取项目触发器的数组。如果您仅在这种情况下使用触发器,并在每次脚本 运行 时删除它们,您的代码将如下所示:

function triggered(e){
    var triggers = ScriptApp.getProjectTriggers();
    try{
       ScriptApp.deleteTrigger(triggers[0]);
    }catch(e){

    }
    mainLogic()
}