2
0

Workato:spreadsheetsに沢山のデータを書き込む際に、途中でjobが固まる

Last updated at Posted at 2023-12-03

はじめに

Workatoのレシピを使って、spreadsheetsに沢山のデータを書き込む際に、途中で書き込みが止まることがありました。(job自体はエラーとならず、processingでした。)

どうしたのかなと思い、jobの履歴 → 当該のspreadsheetsアクション → debugを見てみると以下のようなエラー(?)が出てました。

スクリーンショット 2023-11-25 16.25.18.png

調べてわかったエラー理由と、私なりの解決策を書きましたので、同じところで詰まっている方の参考になれば幸いです。

どのようなエラーなのか

Google Sheets API ついて

Googleドライブ上のspreadsheetsを操作するためのGoogleが提供しているAPIです。
spreadsheetsのセルの値を読み取ったり、セルに値を書き込んだりすることができます。

workatoではこのGoogle Sheets APIを用いて、spreadsheetsとのコネクタを張り、値を書き込んだりしてます。

Google Sheets APIの回数制限について

調べて見ると、Google Sheets APIは、下記URLページに記載されているように、API呼び出しに回数制限が設けられている様です。

https://developers.google.com/sheets/api/limits

スクリーンショット 2023-11-25 15.55.20.png

無料のユーザは、1分に60回のセルの読み書きまでが許されていることが分かりますね。

つまり先ほどのエラーNETWORK TRACE POST 429は、1分間に60回以上のAPIリクエスト(読み書きの依頼)をしたから起きたと推測されます。

解決策(レシピの改善)

1.「Scheduler by Workato」 を選択

先ほどのエラーを解消するため、ここでは、
spreadsheetのアクションの後に、Scheduler by Workatoを利用しました。

Workatoの公式doc↓
https://docs.workato.com/ja/features/scheduler.html#actions

スクリーンショット 2023-11-25 16.05.56.png

2.「Wait for time duration」アクションを選択

スクリーンショット 2023-11-25 16.08.50.png

3.タブから「Enter custom value」を選択

スクリーンショット 2023-11-25 16.13.16.png

4.任意の時間を入力

ここで入力する値は、秒単位になっています。今回は、1分間に60回以上のAPIリクエスト(読み書きの依頼)を避けるために、一回の呼び出しごとに1秒のtime waitを入れました。

スクリーンショット 2023-11-25 16.09.17.png

レシピ(参考までに)
スクリーンショット 2023-11-25 16.19.07.png

※注意事項

このScheduler by WorkatoTest recipe では正常に動作せず、Start recipeをした時のみ正常に動作する様なので、気をつけましょう。

最後に

このようにすることで、Google Sheets APIの回数制限に引っかからず、書き込みを続けることができました! 参考になりましたら幸いです。

2
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
0