1

gmail 用の Google スクリプトを使用して、150 日以上前のメールを削除しようとしているとマークするスクリプトを作成しています。スクリプトは x 時間後にタイムアウトになるため、その時間内にできるだけ多くのメールを処理し、スクリプトが 2 分後に停止したところから実行を継続するように新しいトリガーを設定します。

私が心配しているのは、その新しいトリガーが設定されて実行された後、特定の日時のトリガーであっても、「現在のアプリのトリガー」に表示されることです。これが一定期間、たとえば 1 か月にわたって頻繁に発生する場合、次のエラーが発生しますか。

「このスクリプトにはトリガーが多すぎます。さらにトリガーを追加する前に、トリガーをスクリプトから削除する必要があります。

または、期限切れの特定の日時トリガーは、ある時点で自動的に削除されますか?

この状況のベストプラクティスを知っている人はいますか?

4

1 に答える 1

3

Apps スクリプトには、ユーザー/スクリプトごとに 20 個のトリガーという制限があります。これを回避するには、ScriptApp クラスを使用して、スクリプトが実行されるたびに古いトリガーを削除することをお勧めします。ScriptApp.getProjectTriggers() を使用して、プロジェクト トリガーの配列を取得できます。このシナリオでのみトリガーを使用し、スクリプトが実行されるたびにトリガーを削除する場合、コードは次のようになります。

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

    }
    mainLogic()
}
于 2015-07-30T16:06:04.253 に答える