概要
GASの定期実行では、決まった時刻に定期実行設定することができず、何時~何時の間で実行する、といったような曖昧な設定しかできない。
スクリプトで設定すれば、毎日何時何分に実行させる、といった設定ができる。
トリガー作成/削除 スクリプト
// 定数
const functionName1 = 'function1';
const functionName2 = 'function2';
const deleteTriggerFunctionName = [functionName1, functionName2];
/**
* 指定時間に実行させるトリガーを作成
*
* ※この関数を定期実行設定しておく
*/
function mainTriggerFunction(){
let runTime = new Date();
// functionName1を毎日17:00に実行する
runTime.setHours(17);
runTime.setMinutes(00);
setTrigger(functionName1, runTime);
// functionName1を毎日17:30に実行する
runTime.setHours(17);
runTime.setMinutes(30);
setTrigger(functionName2, runTime);
}
/**
* 実際にトリガーを作成する
* @param functionName
* @param date
*/
function setTrigger(functionName, date){
ScriptApp.newTrigger(functionName).timeBased.at(date).create();
}
/**
* 指定したトリガーを削除する
* (実行し終わったトリガーを溜めておきたくないため)
*
* ※この関数を定期実行設定しておく
*/
function deleteTrigger(){
const allTriggers = ScriptApp.getProjectTriggers();
for (let i = 0; i <= allTriggers.length; i++){
if (deleteTriggerFunctionName.includes(allTriggers[i].getHandlerFunction())){
ScriptApp.deleteTrigger(allTriggers[i]);
}
}
}