見出し画像

GAS|ファンクション名からトリガーを削除する|deleteTrigger|getHandlerFunction|Trigger|getProjectTriggers|ScriptApp|Google Apps Script|開発裏話

マンガポスト日本版」では、Google ドライブ内に保存している「コミックス発売日情報」を参照して、その日付を基に毎日自動配信(ツイート)しています。

毎日決められた時分秒に実行しているのではなく、その日の情報量の多さに応じて自動計算し、トリガーを任意に設定しています。

GAS のトリガーは、実行したら自動的に削除されるものではありません。ですので、明示的に削除しなければ、実行済みのトリガーがプロジェクト内に溜まり続けてしまいます

/**
 * Removes the triger that match the given function so it no longer runs.
 * 
 * @param functionName — the function to call when the trigger fires
 */
function deleteTrigger(functionName) {
  // gets all installable triggers associated with the current project
  var triggers = ScriptApp.getProjectTriggers();
  for (var i = 0; i < triggers.length; i++) {
    // gets a script trigger
    var trigger = triggers[i];
    
    // gets the function that will be called when the trigger fires
    if (trigger.getHandlerFunction() == functionName) {
      // removes the given trigger so it no longer runs
      ScriptApp.deleteTrigger(trigger);
    }
  }
}

一番の注意点は、GAS では、プロジェクトで設定可能なトリガーの上限数が決められている(20 個を超えて設定できない)ということです。上限数を超えると何も実行できなくなってしまいますので、不要になった実行済みのトリガーは必ず削除するようにしましょう。

Triggers
20 user / script

マンガポスト日本版

マンガポスト日本版の Twitter 公式アカウントです。
漫画(まんが)・コミックの新刊情報を毎日配信中!

コーヒーブレイク

ある日突然やって来た宇宙人のモジャ公&ロボットのドンモと”宇宙へ家出”した空夫。予測不可能なドタバタ大冒険が始まる!

この記事が参加している募集

この記事が気に入ったらサポートをしてみませんか?