GAS の実行時間制限について

Google Apps Script (GAS) の実行回数に明確な制限はありません。ただし、短時間に大量のリクエストを送信すると、Google のシステムによって制限される可能性があります。

制限を受ける可能性のあるケースと回避策

GAS の実行が制限される可能性がある主なケースと、その回避策を以下に示します。

1. トリガーによる連続実行

  • 問題: 時間主導型トリガーなどで、短時間に何度もスクリプトが実行される場合。
  • 回避策:
    • スクリプトの実行頻度を下げる。
    • スクリプト内で処理を分割し、1 回の実行時間を短縮する。
    • キャッシュや SpreadsheetApp.flush() を活用して、外部サービスへのアクセス回数を減らす。

2. 大量データの処理

  • 問題: 大量のデータ処理を行うスクリプトを一度に実行する場合。
  • 回避策:
    • データを分割して処理する。
    • BatchRequest オブジェクトを使用して、複数の処理を一括で行う。

3. 外部サービスへのアクセス集中

  • 問題: 外部サービスへのリクエストが短時間に集中する場合。
  • 回避策:
    • Utilities.sleep() を使用して、リクエスト間隔を調整する。
    • 外部サービスの API 制限を確認し、制限内に収まるようにリクエストを調整する。

4. 同一アカウントからの同時実行

  • 問題: 同じ Google アカウントで複数のスクリプトを同時に実行する場合。
  • 回避策:
    • 実行時間をずらす。
    • 別の Google アカウントを使用する。

5. スクリプトの実行時間制限

  • 問題: 1 回のスクリプトの実行時間が長すぎる場合。
  • 回避策:
    • スクリプトの実行時間を 6 分以内に収める。
    • 6 分を超える処理が必要な場合は、処理を分割し、トリガーや UrlFetchApp.fetch() を使用して非同期処理を実装する。

エラーメッセージ

スクリプトの実行が制限されると、以下のようなエラーメッセージが表示されることがあります。

  • Service invoked too many times for minute: URLFetch.
  • Service invoked too many times: Gmail.

これらのエラーメッセージが表示された場合は、上記の回避策を参考にスクリプトを修正する必要があります。

その他

  • Google は GAS の利用状況を監視し、必要に応じて制限を調整することがあります。
  • 大規模なアプリケーションを開発する場合は、上記に加えて、適切なエラー処理やリトライ処理を実装する必要があります。

参考情報: