ポンコツエンジニアのごじゃっぺ開発日記。

いろいろポンコツだけど、気にするな。エンジニアの日々の開発などの記録を残していきます。 自動で収入を得られるサービスやシステムを作ることが目標!!

GASのスクリプトを指定した時間に自動で実行する方法

この記事は GAS道場 Advent Calendar 2019 の6日目の記事です。 Google Apps Script(GAS)をこれから使おうという方向けのアドベントカレンダーになります。

今回の記事は、GASを決まった時間指定した時間定期実行をする方法を紹介したいと思います。

サンプルスクリプト

今回使用するプログラムは以下になります。

function myFunction() {
  console.log(new Date());
}

単純に現在の時間を console.log で出力しているだけです。なので実行時間がログに出力されます。

トリガーの設定

では、これに対して定期実行などのトリガーを設定してきましょう。 スクリプトを入力している画面のヘッダーのところで以下のようなアイコンをクリックします。 (または、ヘッダーのメニューの編集現在のプロジェクトのトリガーを選択します。) f:id:ponkotsu0605:20191203233309p:plain

それをクリックすると以下のようなトリガーを設定する画面が表示されると思います。 f:id:ponkotsu0605:20191203233344p:plain

右下のトリガーを追加をクリックします。 例えば、以下のように設定します。

f:id:ponkotsu0605:20191203233414p:plain

項目 設定内容
実行する関数を選択 myFunction
実行するデプロイを選択 Head
イベントのソースを選択 時間主導型
時間ベースのトリガーのタイプを選択 分ベースのタイマー
時間の間隔を選択(時間) 1分おき
エラー通知設定 今すぐ通知を受け取る

設定すると以下のように新しいトリガーのレコードが作成されます。 f:id:ponkotsu0605:20191203234941p:plain

ちなみに、各項目については以下のようになります。 イベントのソースを時間主導型にした場合の説明になります。

時間ベースのトリガーのタイプ

特定の時間にすることで、指定した時間に実行することができます。個人的にはこの設定は使わないです。 XXベースのタイマーにすることで、その単位の間隔で実行してくれます。詳細な数値に関してはその下の項目で設定します。

時間の間隔を選択(時間)

上で設定した単位の倍率を設定することができます。 表示されているままではあるのですが、例えば、1時間おきに設定すると、1回目の実行のあと次の実行はその1時間後に実行されることになります。 ただ、ここで注意しないといけないのが、毎時0分に実行するわけではなく、このトリガーを設定したときにランダムで実行する時間が設定されるので、例えば1回目の実行が1時36分に実行されることもあるし、1時24分に実行されることもあります。 毎時0分とか切りの良い時間に実行したい場合は以下の記事で紹介していますので、こちらも御覧ください。

www.pnkts.net

エラー通知設定

エラーが発生したときにメール通知をいつするかという設定になります。 自分の場合はエラーが発生したらすぐに知りたいので、いつも今すぐ通知を受け取るで設定しています。

実行結果

上で設定したトリガーの実行結果が以下になります。 StackDriver Logging

f:id:ponkotsu0605:20191203234913p:plain

一番下のレコードはエディタ上で動作確認のために手動で実行したものになります。 それ以外は種類が時間主導型になっていると思います。 だいたい毎分16秒に実行されているのがわかります。ただ、たまに16秒じゃないものも存在するので、おおよそ1分おきの実行だということがわかります。

さいごに

GASで定期実行ができるようになりました。このようにして、例えば定期的にクローリングしてサイト情報からなにかデータをスプレッドシートに記録する、などのようなことも実現が可能となるでしょう。