最近ハマっているのが Google Apps Script (GAS) ってやつです。
Google Spreadsheets にExcelマクロ (VBA) みたいな感じで、
動いてくれるスクリプトが書けるというシロモノ。
・・・ちょっとハマった事があったのでメモ。
Spreadsheet の内容は、点取りゲームのようなもので
各参加者用のシート人数分と集計シート1枚を用意。
スクリプトの内容として、onEdit トリガーにてスクリプトを呼び出して
各参加者用のシートに状況を反映してあげるというもの。
(ここでの状況の反映という実装は、各シートのセルの色を塗る、というものでした)
これを多人数(この時は8人)で同時多発的に編集していたら
onEdit トリガーが反応しなくなってしまいました。
テストはしたのですが、「スクリプト間違えたかな・・」と
ソースをちょこちょこ確認したりいじったりしている間に
ついにスクリプトが呼ばれなくなりました。
(function の先頭に Browser.Msgbox("test"); みたいに書いても
メッセージボックスが出なかった)
で、
1時間か2時間後ぐらいに再度 Spreadsheet を編集したら、
ちゃんと onEdit トリガー拾ってくれました。
(イベント中のみんなが編集している間の1時間は onEdit 動いてくれなかった)
一応そのイベント自体は中止にならなかったけど、
地味~に頭が真っ白になってイベントに集中できなかった・・・
対応策は今後検討しますが、事象の紹介でした。
※追記
翌日になってやっと、アラートメールが来ました(笑
短時間にサービス spreadsheets を実行した回数が多すぎます。呼び出しの間に Utilities.sleep(1000) を試してください。
だそうな。今度から入れておこうと思うけど、これって呼び出し回数は変わらない印象なんだけど。。