スプレッドシートで作った関数を大量発行したら、途中からエラーになった
はい、以下の記事の続きです
http://workmemo.techblog.jp/archives/37357577.html
喜び勇んで作った関数を大量に(1万件)くらい回してみたら、
実行に結構時間が掛かるうえ、ERRORになってる場所が結構ある。
ただし個別にデコードするとちゃんと成功する。
調べてみたらgoogleスプレッドシートって
スクリプトを大量に呼ぶと途中であきらめてERRORにする癖があるようで。
参考:
http://jutememo.blogspot.com/2014/01/google.html
ちゃんと測ってませんが、直観的に1000件くらいを超えると怪しい。
#ERROR! となり、以下のエラーが吐き出されます。
Service invoked too many times in a short time: exec qps. Try
Utilities.sleep(1000) between calls.(行 0)が発生しました。
今回は自動化することが目的ではなく、単発でデータを出すことが目的だったので、
ISERRORでERRORになっていない部分を抜き出してデータ化。
ERRORになってる部分だけを再計算するようにしました。
この再計算もスプレッドシートの自動計算のクセなのか、
フォーカスのin-outではだめで、一度セルを綺麗にして再度コピペする、みたいにしないとダメでした。
再計算ボタン探したけど見当たらなかったのですが、たぶんどこかにあるんじゃないかと。
スプレッドシートは便利だけど、地味な落とし穴がたまに空いてます。
コメント