キン〇マハムスター佐藤  2021/05/12更新

GoogleAppsScriptのトリガー 時間指定について


GoogleAppsScriptの「トリガー」機能 時間指定について

メモ:

・トリガーを実行しているとき自分自身のトリガーを削除すると処理が停止する

・トリガーは動作後、削除しないと残る

・トリガーが溜まってくると、トリガー登録できなくなる(上限がある)

・トリガーで発動する関数に引数を渡せない

・トリガーの削除と登録をスクリプトで繰り返し行うような処理を書くと、トリガーが登録されていても発動しないときがある

・スクリプトでトリガー登録するより手動で登録した方が確実に動作する

・トリガーの時計は曖昧である。「0時~1時」に実行とか

・トリガーは年月日時分で指定できるが、動かないことがある


トリガー指定するサンプルコード

function setTrigger() {
  //1分後にトリガー指定testMethod関数を実行
  ScriptApp.newTrigger('testMethod')
  .timeBased().atAfter(1 * 60 * 1000).create();  

 //時間指定 明日の12時30分にtestMethod関数を実行
  let setTime = new Date();
  setTime.setDate(setTime.getDate() + 1);//明日
  setTime.setHours(12);
  setTime.setMinutes(30); 
  ScriptApp.newTrigger('testMethod')
  .timeBased().at(setTime).create();  

  // 3日おきの23時~24時に発動)
 ScriptApp.newTrigger("testMethod")
  .timeBased().atHour(23) //23時に設定
  .everyDays(3) //3日おきに発動
  .create();
}


// testMethod関数を実行するトリガーを削除する(消さないと残る)
function deleteTrigger() {
  let triggers = ScriptApp.getProjectTriggers();
  for(const triggers of tigger) {
    if (tigger.getHandlerFunction() == "testMethod") {
      ScriptApp.deleteTrigger(tigger);
    }
  }
}



タイトルとURLをコピーしました