ランチタイムのグループ分けを自動で行う「UnitLunch」を改良しました
オンライン飲み会のグループ分けを考えるのが大変。。。自動化しないともう無理だ!
「ブレイクアウトルームの組分け、どうすればいい?」
と同僚から相談されて、ググったら出てきた
を紹介しました。
「なるほど、良さそう。これでやってみるね」と言われて、めでたしめでたしと思っていたのですが、
後日、「人数多いせいか、タイムアウトしちゃって無理かも……」と言われました。
というわけでスクリプトを見てみると、
たしかに Google Apps Script でコストの高い(タイムアウトの原因となる)
getValue()
メソッドや getValues()
メソッドが for 文の中で何度も呼び出されていて、これでは無理そうです。
自分のアカウントで試してみても、18人を4人ずつに分けることですらタイムアウトしました。
6分かかっても終わりません。これはなかなかです。
原因は getValue や getValues の呼び出し回数の多さとわかっていますから、
一度の getValues メソッドで、シート全体の値を取得する方針で修正しました。
できあがったのがこちら ↑ です。
6分以上かかっていた処理が、1秒前後で終わるようになりました。
コメントもだいぶ足しましたので、カスタマイズしやすくなっているかと思います。
使い方は元のブログ記事とほぼ同じです。
元のブログ記事のやり方に沿うなら、スプレッドシートの URL をコード内に入力する必要はないので、その部分のコードの修正もおこなっています。
シャッフルランチやオンライン飲み会などのチーム分けに、ぜひご活用ください。