メンチカツには醤油でしょ!!

ITエンジニア徒然 (AWS/Java/JavaScript/Google Spreadsheets/Jenkins/Mac/外部コミュニティ・勉強会レポ)

onEdit トリガーが反応しない・・・だと・・・?

 

最近ハマっているのが Google Apps Script (GAS) ってやつです。

Google SpreadsheetsExcelマクロ (VBA) みたいな感じで、

動いてくれるスクリプトが書けるというシロモノ。

 

・・・ちょっとハマった事があったのでメモ。

Spreadsheet の内容は、点取りゲームのようなもので

各参加者用のシート人数分と集計シート1枚を用意。

スクリプトの内容として、onEdit トリガーにてスクリプトを呼び出して

各参加者用のシートに状況を反映してあげるというもの。

(ここでの状況の反映という実装は、各シートのセルの色を塗る、というものでした)

これを多人数(この時は8人)で同時多発的に編集していたら

onEdit トリガーが反応しなくなってしまいました。

テストはしたのですが、「スクリプト間違えたかな・・」と

ソースをちょこちょこ確認したりいじったりしている間に

ついにスクリプトが呼ばれなくなりました。

(function の先頭に Browser.Msgbox("test"); みたいに書いても

 メッセージボックスが出なかった)

で、

1時間か2時間後ぐらいに再度 Spreadsheet を編集したら、

ちゃんと onEdit トリガー拾ってくれました。

(イベント中のみんなが編集している間の1時間は onEdit 動いてくれなかった)

 

一応そのイベント自体は中止にならなかったけど、

地味~に頭が真っ白になってイベントに集中できなかった・・・

 

 

対応策は今後検討しますが、事象の紹介でした。

 

 

※追記

翌日になってやっと、アラートメールが来ました(笑

短時間にサービス spreadsheets を実行した回数が多すぎます。呼び出しの間に Utilities.sleep(1000) を試してください。

だそうな。今度から入れておこうと思うけど、これって呼び出し回数は変わらない印象なんだけど。。

f:id:ryoichi0102:20130710130118j:plain