GASでのPDF出力処理の高速化の仕方について。

前提

  • スプレッドシートの社員シートで、以下の様に社員データを管理しています。

・行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 コメント