読者です 読者をやめる 読者になる 読者になる

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

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

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

GAS Spreadsheets

 

最近ハマっているのが 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