1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

GoogleAppsScriptのトリガーを毎日10時ジャストに発動させる

Last updated at Posted at 2021-02-17

はじめに

こんにちは。いきものがかりのボーカルの吉岡聖恵さんのフォトエッセイの発売が発表されて、発狂しました、筆者です:yum:

GoogleAppsScriptのトリガー便利ですよね。
サーバレスで定時(?)実行が可能です。

ただ、日次でのトリガーでは、1時間の間のどこかで実行される曖昧性を持っているため、毎日10:00ぴったりにslack botでつぶやきたいんだ!というのは、そのままではできないのが悲しいところです:thinking:

しかしながら、ぴったりに行いたい処理もあるのが現実です。

よし!ではぴったりに実行しよう!

GoogleAppsScriptのトリガーを10:00ジャストに発動させる

以下の手順で行います。

1. 10:00に発動したい関数を作成.

const main = () => {
  console.log('Hello World!')

  // 指定日時実行のトリガーは、終了後、無効なトリガーとして残り続けるので削除しておく.
  const triggers = ScriptApp.getProjectTriggers()
  for (let i in triggers) {
    if ('main' == triggers[i].getHandlerFunction()) {
      ScriptApp.deleteTrigger(triggers[i])
    }
  }
}

2. 10:00にトリガーをセットする関数を作成.

const setTrigger = () => {
  const date = new Date()
  ScriptApp.newTrigger('main')
    .timeBased()
    .at(new Date(date.getFullYear(), date.getMonth(), date.getDate(), 10, 0, 0))
    .create()
}

3. 1の関数を毎日9時台にトリガーセットする

おわりに

内部的には、毎日10時に発動するトリガーをセットしているのですが、こうすることで、10時ジャストに毎日スクリプトを走らせることができます:thumbsup:

また、発動したトリガーは残り続けるので、削除しておくことをおすすめします。
トリガーを設定できる上限値に達したときにエラー吐きますので... :sob:

それでは!

1
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?