はじめに
Google Apps Script(GAS)でトリガーを設定する際に正確な時間単位での設定が出来なったので
その際に役立ったやり方を紹介します。
背景
毎時30分とか40分とか「分」を指定して1時間単位でプログラムを実行させたい。
上記画像のように画面上で設定出来るが、多少のタイムラグがあるため「分」までは正確に指定出来ません。
解決方法
Scriptで下記のように制御させます。
sample_trigger.gs
function myFunction() {
// トリガー全削除
var triggers = ScriptApp.getProjectTriggers()
for(var i=0; i < triggers.length; i++) {
ScriptApp.deleteTrigger(triggers[i]);
}
// 1時間後の40分に起動されるようトリガーを設定
var trigger_setTime = new Date();
trigger_setTime.setHours(trigger_setTime.getHours() + 1);
trigger_setTime.setMinutes(40);
ScriptApp.newTrigger("myFunction").timeBased().at(trigger_setTime).create()
}