Dekaatama’s blog

でかあたまのブログへようこそ!日々のよしなしごとを書いています。

Google Apps Script の勉強 その38 エラー「1 日にサービス conversion を実行した回数が多すぎます。」

Dekaatamaです。


次の様な処理をしたいと思っています。
 
スプレッドシートから必要なデータを抽出して、PDF出力する」
 
問題は、出力数が多いことです。
 
毎回500枚程度のPDFを出力することになります。
 
1)「UrlFetchApp」メソッドの利用
 
「UrlFetchApp」メソッドは、PDF出力を細かく制御できる反面、連続で呼び出すと、アクセス過多でエラーが出ます。

沢山呼び出す時は、10秒くらいUtilities.sleepでウェイトする必要があります。
 
また、一日に呼び出せる回数制限もあります。
 
ということで、UrlFetchApp」の利用は諦めました。
 
2)「getAs」メソッドの利用
 
抽出されたスプレッドシートデータをgetAsでPDFに変換して、createFileで保存することになります。
 
このメソッドでは、スプレッドシートがまるごとPDFになるだけで細かい制御ができませんが、Utilities.sleepを入れる必要はありません。
 
ということで1)を実行したり2)に移行したりしている内に
 
「1 日にサービス conversion を実行した回数が多すぎます。」
 
というエラーが出ました。
 
1日のPDF出力の回数制限のようです。
 
この1日の単位は「過去24時間」らしいです。
 
頑張りすぎましたかね…
 
しかし、2)を使っても処理時間が30分以上かかります。
 
会社で入っているのは「G Suite Business」なので1回のスクリプト実行可能時間は30分までです。

30分×60=1800秒,1800秒÷500枚=3.6秒

1枚のPDFに付き、3.6秒でデータ抽出・PDF出力をする必要があります。

困りました。
 
この処理は、元々のデータはエクセルでもあり、PDF出力はエクセルでやってGoogleDriveにアップロードするのが正解なのだと思います。
 
しかし、乗りかかった船です。
 
ググってみました。
 
以上です💘