Google Apps Script の実行トリガーとして、時間指定を行なうことができます。
時間指定は、「1時間ごと」や「5時~6時の間」等の指定が行なえます。
しかし、「毎日12時05分」といった通知時間の指定を設定することができせん。
このような指定をしたい場合は、コード上でトリガーの指定をする必要があります。
#毎日11時59分に処理を実行する
以下の作業が必要になります。
- 11時59分に処理( main )を実行するようなトリガーを設定する関数( setTriger )をコード上で作成する
- mainの処理の中で、setTrigerにて設定したトリガーを削除するコードを書く
- デフォルトのトリガー設定にて、「日タイマー:10時~11時」でsetTrigerが動くようにする
上記のようにすることで、毎日10時~11時の間に、setTrigerが実行され、setTrigerによってその日の11時59分にmainが実行されるよう設定され、11時59分にmainが実行されます。
mainが実行されると、11時59分に実施するよう設定したトリガーが削除され、そのほかの処理も実行されます。
(トリガーは削除しないと残ってしまいます)
以下、実際のコードです。
// 11時59分にトリガーを設定する関数
function setTrigger() {
var day = new Date();
day.setHours(11);
day.setMinutes(59);
ScriptApp.newTrigger("main").timeBased().at(day).create();
}
// トリガーを除去する関数
function removeTrigger() {
var triggers = ScriptApp.getProjectTriggers();
for(var i=0; i < triggers.length; i++) {
if (triggers[i].getHandlerFunction() == "main") {
ScriptApp.deleteTrigger(triggers[i]);
}
}
}
// 実際に動かしたい処理
function main() {
removeTrigger(); //トリガーを除去する
//実行したい処理
}
以下、Google Apps Script のデフォルトのトリガー設定です。
トリガーは、Google Apps Script 画面上部の時計マークから設定可能です。
上記の例では、毎日特定の時間に処理を実行させましたが、他にも、「〇日おきに実行」や「〇月〇日〇時〇分に実行」など、さまざまなパターンで設定できます。
###参考