はじめに
Workatoのレシピを使って、spreadsheetsに沢山のデータを書き込む際に、途中で書き込みが止まることがありました。(job自体はエラーとならず、processingでした。)
どうしたのかなと思い、jobの履歴 → 当該のspreadsheetsアクション → debug
を見てみると以下のようなエラー(?)が出てました。
調べてわかったエラー理由と、私なりの解決策を書きましたので、同じところで詰まっている方の参考になれば幸いです。
どのようなエラーなのか
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
無料のユーザは、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
2.「Wait for time duration」アクションを選択
3.タブから「Enter custom value」を選択
4.任意の時間を入力
ここで入力する値は、秒単位になっています。今回は、1分間に60回以上のAPIリクエスト(読み書きの依頼)を避けるために、一回の呼び出しごとに1秒のtime waitを入れました。
※注意事項
このScheduler by Workato
は Test recipe では正常に動作せず、Start recipeをした時のみ正常に動作する様なので、気をつけましょう。
最後に
このようにすることで、Google Sheets APIの回数制限に引っかからず、書き込みを続けることができました! 参考になりましたら幸いです。