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 の利用状況を監視し、必要に応じて制限を調整することがあります。
- 大規模なアプリケーションを開発する場合は、上記に加えて、適切なエラー処理やリトライ処理を実装する必要があります。
参考情報: