この記事は GAS道場 Advent Calendar 2019 の6日目の記事です。 Google Apps Script(GAS)をこれから使おうという方向けのアドベントカレンダーになります。
今回の記事は、GASを決まった時間、指定した時間、定期実行をする方法を紹介したいと思います。
サンプルスクリプト
今回使用するプログラムは以下になります。
function myFunction() { console.log(new Date()); }
単純に現在の時間を console.log
で出力しているだけです。なので実行時間がログに出力されます。
トリガーの設定
では、これに対して定期実行などのトリガーを設定してきましょう。 スクリプトを入力している画面のヘッダーのところで以下のようなアイコンをクリックします。 (または、ヘッダーのメニューの編集→現在のプロジェクトのトリガーを選択します。)
それをクリックすると以下のようなトリガーを設定する画面が表示されると思います。
右下のトリガーを追加をクリックします。 例えば、以下のように設定します。
項目 | 設定内容 |
---|---|
実行する関数を選択 | myFunction |
実行するデプロイを選択 | Head |
イベントのソースを選択 | 時間主導型 |
時間ベースのトリガーのタイプを選択 | 分ベースのタイマー |
時間の間隔を選択(時間) | 1分おき |
エラー通知設定 | 今すぐ通知を受け取る |
設定すると以下のように新しいトリガーのレコードが作成されます。
ちなみに、各項目については以下のようになります。 イベントのソースを時間主導型にした場合の説明になります。
時間ベースのトリガーのタイプ
特定の時間にすることで、指定した時間に実行することができます。個人的にはこの設定は使わないです。 XXベースのタイマーにすることで、その単位の間隔で実行してくれます。詳細な数値に関してはその下の項目で設定します。
時間の間隔を選択(時間)
上で設定した単位の倍率を設定することができます。 表示されているままではあるのですが、例えば、1時間おきに設定すると、1回目の実行のあと次の実行はその1時間後に実行されることになります。 ただ、ここで注意しないといけないのが、毎時0分に実行するわけではなく、このトリガーを設定したときにランダムで実行する時間が設定されるので、例えば1回目の実行が1時36分に実行されることもあるし、1時24分に実行されることもあります。 毎時0分とか切りの良い時間に実行したい場合は以下の記事で紹介していますので、こちらも御覧ください。
エラー通知設定
エラーが発生したときにメール通知をいつするかという設定になります。 自分の場合はエラーが発生したらすぐに知りたいので、いつも今すぐ通知を受け取るで設定しています。
実行結果
上で設定したトリガーの実行結果が以下になります。 StackDriver Logging
一番下のレコードはエディタ上で動作確認のために手動で実行したものになります。 それ以外は種類が時間主導型になっていると思います。 だいたい毎分16秒に実行されているのがわかります。ただ、たまに16秒じゃないものも存在するので、おおよそ1分おきの実行だということがわかります。
さいごに
GASで定期実行ができるようになりました。このようにして、例えば定期的にクローリングしてサイト情報からなにかデータをスプレッドシートに記録する、などのようなことも実現が可能となるでしょう。