前提
- スプレッドシートの社員シートで、以下の様に社員データを管理しています。
・行1:社員A、30歳、03-1234-5678、〒000-0000、株式会社A(取引先)…
・行2:社員B、32歳、03-1234-5678、〒000-0000、株式会社B(取引先)…
・行3:社員C、25歳、03-1234-5678、〒000-0000、株式会社A(取引先)…
- 社員シートの列数は300弱あります
- GASで、シートから社員各々のPDFを作成する処理を書いています
実現したいこと
- 「請求書発行ボタン」を押すと、以下のようなフォルダ構造でPDFファイルを発行したい(できるだけ短時間で)。
株式会社Aフォルダ(Googleドライブ):社員A情報PDF、社員C情報PDF
株式会社Bフォルダ(Googleドライブ):社員B情報PDF
現時点で実現できていること
上述したようなフォルダ構造で、シートをPDF化する処理自体はできています。
発生している問題・エラーメッセージ
処理に時間がかかりすぎ、タイムアウトしてしまいます(6分が実行時間の上限のため)。
試したこと
- 逐次処理での試行 → 1件辺り約10秒ほどかかり、6分以内に終わるのは約36件ほどになります。
【処理概要】
・情報の処理1(0.2秒)
・情報の処理2(0.3秒)
・情報の処理3(0.5秒)
・情報の処理4(4秒)
・PDF出力処理(5秒)
- 並列処理での試行 → 処理概要は上述の通りで、PDF出力処理部分でアクセス集中でエラーが出てしまうため、PDFが正常に作成できません。
質問したいこと
このような場合、他に考えられるアプローチがあるでしょうか?
トリガーを上手く使うと6分以上の実行継続が可能となるようですが、単純計算で10秒×300行=50分もかかってしまう計算になります。
※現状で、できる限りAPIの呼び出し回数は最小になっていますが、これだけの時間がかかります
0 コメント