- t_o_dと申します。
- GASで定期実行を行う仕組みとしてトリガー機能があります。
- そこで今回はn時間後に削除されるトリガーを作成する方法を記録いたします。
環境
- mac OS Monterey 13.2
- Google Apps Script
手順
スクリプトエディタ起動
- Googleドライブを開き、新規で「Google Apps Script」を作成してスクリプトエディタを起動してください。
コード記述
- 以下の内容をスクリプトエディタの任意のgsファイルに記述。
const targetTrigger = 'target'
function main() {
// 1時間後に削除される「10分ごとに実行されるトリガー」を作成。
createTrigger(targetTrigger, 10, 1);
}
// 対象トリガー
function target(){
console.log('hello')
}
// トリガー作成
function createTrigger(name, minutes, hour){
// n分ごとに実行されるトリガー設定
ScriptApp.newTrigger(name).timeBased().everyMinutes(minutes).create();
// n時間後に上記で設定したトリガーを削除する。
// after(ミリ秒)を指定することで、ミリ秒後に1回だけ実行するトリガーの作成が可能。
if(hour > 0){
ScriptApp.newTrigger('deleteTrigger')
.timeBased()
.after(hour * 3.6e+6)
.create();
}
}
// 対象トリガーを削除する関数
function deleteTrigger(){
const triggers = ScriptApp.getProjectTriggers();
for(const trigger of triggers){
if (trigger.getHandlerFunction() === targetTrigger) {
ScriptApp.deleteTrigger(trigger);
}
}
}
実行
- 記述後、main関数を実行して以下のように「対象トリガー」及び「 トリガー削除トリガー」の2つができていることを確認します。
- 確認して1時間後、再度トリガー設定を見て以下のように「対象トリガーの削除」及び「トリガー削除トリガーの無効化」となっていることを確認します。
- 以上です。
参考
アノテーション株式会社について
アノテーション株式会社は、クラスメソッド社のグループ企業として「オペレーション・エクセレンス」を担える企業を目指してチャレンジを続けています。「らしく働く、らしく生きる」のスローガンを掲げ、様々な背景をもつ多様なメンバーが自由度の高い働き方を通してお客様へサービスを提供し続けてきました。現在当社では一緒に会社を盛り上げていただけるメンバーを募集中です。少しでもご興味あれば、アノテーション株式会社WEBサイトをご覧ください。