はじめに
toho様を貶める意図はないです。(くそ雑タイトルごめんなさい)
混雑は予想されていたはずなので、人員の配備等しかるべき準備が行われているであろうこと、
異常な高負荷に備えることは容易ではないことは重々承知の上です。
問題
10/16(金) ← 「鬼滅の刃 無限列車編」の公開日
10/13(火) 00:00:00 ← 前売り券の座席指定・新規鑑賞券購入受付開始
サイトへのアクセスは順番待ち、サイトへアクセスできても1つ1つの遷移がもの凄く遅い状態。
私も鬼滅の刃ファンの1人で、前売り券を購入し、座席指定を行った。
その時に 高負荷時の「上映スケジュール」の挙動について
思うところがあった。
↑上映スケジュールの見た目(正常時)
※後述のエラー発生時は、スクリーンと時間の欄が表示されない。
「上映スケジュール」は、下記の手順で新規鑑賞券の購入まで流れていく。
- 上映スケジュール内に表示されている利用したい日付をクリックorタップする
- 指定した日付の上映スケジュールが表示される
- そこから希望の映画の鑑賞券購入・座席の指定
普段は問題ないが、今回は高負荷であったため、
利用したい日付を選択した際のリクエストが503エラーとなる事象が発生していた。
この時に私が気になった点が下記。
- 利用したい日付選択時、リクエストが失敗しても「見た目的には分からない」
- 失敗したリクエストの「再送信は自動では行われない」
上記によって「一般的なユーザ」が、リクエストが失敗として「終わっている」のに気づけず、
リクエストの再送信を行わず待ち続ける状態が発生したことが予想される。
↑何度も成功するまで送ったリクエスト
対応方法
対応方法としては、開発者ツールのネットワークタブで、日付タップ時のリクエストの終了コードを確認し、 成功するまで日付のタップを繰り返す。
ことでたまに成功するのを待つしかないのだが、
思ったこと
前述のとおり、一般ユーザは「サーバ重いし待ってれば表示されるかぁ」となっていたのではないかと予想している。
そしてしょうがない面も多分にあるが、不親切なUIだと思ってしまった。
(私も開発者ツール見ないとリクエストが失敗してることに気づけなかった。)
じゃあどうしてほしかったの?
遷移ではなくクライアントで描画内容を変えるなら、
リクエストが失敗した際に、ユーザにリクエストの再送信を促すようなUIを作るべきでは?
と思いましたまる
私はもう気合で買えたので、文句を言いたいわけではないけど、
似たようなものを作っている1人のポンコツエンジニアとして思うところがあった。
まとめ
高負荷に備える設備拡充は容易じゃないのは分かってる。その話はしないする意味あまりない。でも、
障害時(※この件が障害かどうかは怪しいけど)にうまくユーザを誘導できるようなUIを心掛けたいと自戒。
備考
qiita使い慣れていないのと、浅学のため、タグとかおかしいかもしれないです。
間違っている箇所ありましたら、申し訳ありませんでした。
気が向いたらご指摘いただけるとありがたいです。