MENU

GASのトリガーは付けっぱなしで大丈夫?【実行数・失敗メール・止め方】

GASのトリガーは付けっぱなしで大丈夫?

お店に届くメールを処理するスクリプトを、30分おきにトリガーで動かしています。

あるとき、処理するメールが3か月くらい1通も来ない時期がありました。その間もスクリプトは30分おきに動き続けています。何もしないのに動かしておいていいのか、止めたほうがいいのか、しばらく迷いました。

結局、そのままにしました。

この記事では、そのとき知りたかったことを、テスト用のスクリプトで1週間あまり動かして確かめました。

  • ちゃんと動いているかは、どこで見るのか
  • 「毎朝9時」と指定すると、実際には何時に動くのか
  • 失敗したら、何が起きて、何が届くのか
  • 処理するものがない間、止めるべきか
  • 止めるときは、どうするのか

題材は、こちらの記事で作った「Gmailの添付ファイルをドライブに保存する」スクリプトです。トリガーの付け方も、この記事で説明しています。

→ Gmailの添付ファイルをGoogleドライブに自動保存する【GAS初心者向け・コピペOK】

この記事ではコードは書きません。GASの画面を開いて、表示を確かめていくだけです。


目次

確かめた条件

テスト用のスクリプトに、トリガーを2つ付けて動かしました。

種類間隔
1つ目分ベースのタイマー30分おき
2つ目日付ベースのタイマー午前9時〜10時(毎日)

検索条件に合うメールを送らない限り、毎回「保存するものは0件」で終わる状態です。処理するメールが来なかった3か月と、同じ状態を作ったことになります。


ちゃんと動いているかを確かめる

エディタの左端に縦に並んだアイコンのうち、上から5番目の「実行数」を押します。

実行数の画面。時間主導型の回が30分おきに並び、9:54:45の回も含めてステータスはすべて「完了」
トリガーで動いた回が、新しい順に並びます。

トリガーで動いた回が、新しい順に並びます。見るところは4つです。

列見るところ
種類トリガーで動いた回は「時間主導型」、エディタの「実行」ボタンで動かした回は「エディタ」と出る
開始時間何時何分に動いたか
期間1回にかかった時間
ステータス「完了」なら正常。失敗すると赤い字で「失敗しました」

処理するものがない回は、1秒前後で終わる

保存するメールが0件の回は、ほとんどが0.6〜2秒で終わっていました。1週間で一番長かった回でも5.7秒です。

見られるのは過去7日分だけ

画面の上に「過去 7 日間」と出ています。それより前の記録は、この画面では見られません。

30分おきのトリガーだと、1日に48回、7日で300回以上の記録が並びます。最初は1ページに50件しか出ないので、前の日を見るには何ページもめくることになります。画面の一番下にある「1ページあたりの行数」を200に変えると、4日分くらいが1ページに収まります。


指定した時刻ちょうどには動かない

2つ目のトリガーは「日付ベースのタイマー」で、時刻を「午前9時〜10時」にしました。

トリガーの編集画面。日付ベースのタイマーで、時刻は「午前 9 時〜10 時」
時刻は「9時〜10時」と、幅で選ぶ形です。

時刻の選択欄は「9時」ではなく「9時〜10時」と、幅で選ぶ形になっています。この1時間のどこかで動く、という意味です。

実際に動いた時刻を実行数の画面で見ると、確かめた7日間、毎日 9:54:45 でした。

実行数の画面。9:56:10と9:26:10の間に、9:54:45の回がある
30分おきの回の間に、毎朝9時のトリガーの回が 9:54:45 で入っています。

秒まで毎日同じです。Googleの公式ドキュメントにも、「指定した1時間のどこかで動き、その時刻が翌日以降も保たれる」という趣旨のことが書かれています。

「毎朝9時ちょうどに動いてほしい」という使い方には向きません。10時までに終わっていればいい作業に使ってください。

30分おきも「0分と30分」ではない

30分おきのトリガーは、毎時 26分10秒 と 56分10秒 に動いていました。

トリガーを付けたのは夜の22時55分で、1回目はその1分後、22時56分10秒に動きました。30分待たずに、付けた直後に1回目が来ます。そこから30分刻みなので、26分と56分になったようです。


失敗したらどうなるか

わざと失敗させて、確かめました。

壊し方は、コードの関数名を変えることです。function saveGmailAttachments() を function saveGmailAttachments2() に書き替えて保存しました。トリガーは saveGmailAttachments という名前で関数を探すので、見つからずに失敗します。

実行数の画面

次の回から、ステータスが赤い字の「失敗しました」に変わりました。

実行数の画面。21:56:10から上は「完了」、21:26:10から下は赤字の「失敗しました」
関数名を変えた次の回から「失敗しました」になりました。

1回の時間は0.5秒前後で、正常な回の半分くらいです。関数が見つからず、すぐに止まるためです。

行の右端の「∨」を押すと、その回のエラー文が開きます。

失敗した行を開いたところ。赤い帯に「Script function not found: saveGmailAttachments」
行を開くと、その回のエラー文が出ます。
Script function not found: saveGmailAttachments

「saveGmailAttachments という関数が見つからない」という意味です。

トリガーの一覧

トリガーの一覧には「エラー率」という列があります。何割の回が失敗したかを示す数字です。

1回失敗した時点で、30分おきのトリガーのエラー率は 0.32% でした。

丸1日失敗させ続けても、15.65% です。それまでの成功した回も含めて計算するので、数字はなかなか大きくなりません。

「0%でなければ、何か起きている」と思って見てください。0%以外の数字が出ていたら、実行数の画面で赤い「失敗しました」を探します。


失敗したら届くメール

失敗すると、Googleからメールが届きます。

届いたのは、最初に失敗してからちょうど24時間後でした。トリガーの「エラー通知設定」が、最初から「毎日通知を受け取る」になっているためです。1日分の失敗をまとめて、1通で知らせてきます。

実際に届いたもの
差出人noreply-apps-scripts-notifications@google.com
件名Summary of failures for Google Apps Script: 無題のプロジェクト

件名の最後には、スクリプトの名前が入ります。

本文は英語です。最初にこう書かれています。

Your script, 無題のプロジェクト, has recently failed to finish successfully.

「スクリプトが最近、正常に終わりませんでした」という意味です。

その下に、エラー文ごとの回数の表があります。

Error Message                                       Count
Script function not found: saveGmailAttachments     48

さらに下に、失敗した1回ずつの記録が並びます。

10/4/26 9:26:10 PM JST  saveGmailAttachments  Script function not found: saveGmailAttachments  time-based

日付は「月/日/年(下2桁)」の順です。「10/4/26 9:26:10 PM」は、2026年10月4日の午後9時26分10秒です。

迷惑メールと見分けにくい英語のメールですが、差出人がGoogleのこのアドレスなら本物です。直すかトリガーを消すまで、毎日届きます。

失敗メールは、トリガーごとに別々に届きました。上のメールに入っていたのは、30分おきのトリガーの48回だけです。毎朝9時のトリガーが失敗した1回(10月5日 9時54分)は、翌朝の9時54分に、別のメールで届きました。失敗が1回だけだったので、回数の表はなく、1回分の記録だけが書かれていました。

直したあと

関数名を元に戻して保存すると、次の回から「完了」に戻りました。

ただし、トリガーの一覧のエラー率はすぐには0%に戻りません。直した直後は15.65%から15.56%に下がっただけで、翌朝は14.76%、その日の午前中には逆に16.84%に上がっていました。過去の失敗も含めた割合なので、直したあともしばらく残り、上がったり下がったりします。

直したかどうかは、エラー率ではなく、実行数の画面で新しい回が「完了」になっているかで確かめてください。


処理するものがない間、止めるべきか

冒頭の迷いに戻ります。

1日に使っている時間

トリガーで動かせる時間には、1日あたりの上限があります。Googleの公式ドキュメント(2026年9月時点)では、次のとおりです。

アカウントの種類トリガーで動かせる時間の合計
個人のGoogleアカウント(@gmail.com)1日90分
Google Workspace(会社などの有料アカウント)1日6時間

→ Quotas for Google Services(Google公式・英語)

今回のテストでは、30分おきが1日48回、毎朝9時が1日1回で、合わせて49回です。処理するものがない回は1秒前後なので、1日に使うのは1分弱になります。90分の上限に比べれば、ごくわずかです。

処理するものがない間、動かしておいても困ることはほとんどありません。

止めたほうがいい場面

それでも、次のような場合は止めることを考えてください。

  • その作業そのものが終わった。 もう二度とそのメールは来ない、と分かっているなら、動かしておく理由がありません
  • 失敗が続いている。 失敗メールが毎日届きます。直せないなら、止めたほうが落ち着きます
  • 1回の処理が重い。 たとえば1回に2分かかる処理を30分おきに動かすと、2分×48回で96分になり、個人アカウントの上限を超えます

止め方・消し方

トリガーの一覧で、止めたい行にマウスを乗せると、右端に鉛筆のマークと「︙」が出ます。

「︙」を押すと、メニューが開きます。

「︙」を押して開いたメニュー。プロジェクトの詳細、トリガーを削除、実行数、失敗した実行
止めるときは「トリガーを削除」を選びます。

止めるときは「トリガーを削除」を選びます。

選ぶと「完全に削除しますか?」という確認が出ます。「この操作を元に戻すことはできません」と書かれているとおり、消したトリガーは元に戻せません。よければ「完全に削除」を押します。

一時停止のような項目は、このメニューにも、鉛筆のマークで開く編集画面にもありません。画面から止める方法は、削除だけです。

あとでまた使うかもしれないなら、消す前に、鉛筆のマークで編集画面を開いて設定をメモしておいてください。「何分おき」「何時」が分かれば、同じものを作り直せます。


つまずき集

トリガーが2つあると、どれがどれか分からない

トリガーの一覧には、何分おきか、何時かが出ません。

トリガーの一覧。2行とも、イベントは「時間ベース」、関数は「saveGmailAttachments」
30分おきも毎朝9時も「時間ベース」としか出ません。

「イベント」の列は、30分おきも毎朝9時も「時間ベース」です。違うのは「前回の実行」の時刻だけです。実行数の画面でも、どちらも「時間主導型」と出るので見分けられません。

確かめるには、行にマウスを乗せて出てくる鉛筆のマークを押します。

1行目にマウスを乗せたところ。右端に鉛筆のマークと「︙」が出ている
鉛筆のマークは、マウスを乗せている間だけ出ます。

鉛筆のマークは、マウスを乗せている間しか出ません。最初は見つけにくいと思います。

トリガーの編集画面。分ベースのタイマーで、時間の間隔は「30 分おき」
鉛筆のマークで開くと、何分おきかが分かります。

見るだけなら、最後に「キャンセル」で閉じてください。「保存」は押さなくて大丈夫です。

関数の名前を変えたら、トリガーが動かなくなった

Script function not found: saveGmailAttachments

トリガーは、付けたときの関数の名前で、関数を探します。あとからコードの中で名前を変えると、見つからずに失敗します。

困るのは、名前を変えて保存した時点では何も起きないことです。トリガーの一覧の「関数」の列は古い名前のまま、エラー率も0%のままです。次にトリガーが動いた時刻に、初めて失敗します。

直すには、コードの関数名を元に戻すか、トリガーを消して新しい名前で付け直します。

エラーが出ているのに「完了」になる

エラーが発生しました: Exception: Invalid file or folder ID: TEST_BROKEN_FOLDER_ID

こちらの記事で整えたコードは、処理全体を try-catch で囲んでいます。途中でエラーが起きても止まらずに、エラーの内容を実行ログに書いて終わる形です。

→ 動いたGASのコードを、後から直しやすい形に整える【CONFIG・関数分割・try-catch】

この形だと、エラーが起きても、実行数の画面では「完了」になります。

保存先フォルダのIDをわざと間違えて、トリガーで動かして確かめました。ステータスは「完了」で、行を開くと上のエラー文が「情報」として出ていました。赤い「エラー」ではありません。

失敗として数えられないので、エラー率は上がらず、失敗メールも届きません。気づくには、実行数の画面で行を開いて、中身を見るしかありません。

直したのに、エラー率が下がらない

上の「直したあと」で書いたとおりです。エラー率は過去の失敗も含めた割合なので、直してもしばらく残り、上がって見えることもあります。実行数の画面で、新しい回が「完了」になっていれば直っています。


まとめ

  • 動いているかは「実行数」の画面で見る。トリガーの一覧のエラー率は、0%でなければ見に行く合図
  • 「毎朝9時」は9時〜10時のどこかで、毎日同じ時刻に動く
  • 処理するものがない回は1秒前後。止めるのは、作業が終わったときか、失敗が続くとき

次に

この記事で見たのは、トリガーで動かした「あと」の画面です。

失敗を知らせるメールには、弱いところがあります。

  • 本文が英語
  • 届くのは1日1回のまとめで、失敗してからしばらく気づけない
  • スクリプトの中で try-catch を使ってエラーを受け止めていると、「完了」になってメールが届かない

このあとの記事では、スクリプトの中で失敗を受け止めて、日本語で自分あてに知らせる方法を扱います。

※2026年10月時点の画面で確かめた内容です。Googleの画面表示は変わることがあります。

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人

コメント

コメントする

CAPTCHA


目次