Open tkzwtks opened 2 years ago
429 Too Many Requestsについて
以下のAPIは、Retry-Afterを含めた429 Too Many Requestsを返すことが出来ます。
POST /api/admin/tenants/add
POST /api/organizer/competitions/add
Too Many Requestsを返した場合は、ベンチマーカーは点数を加算せずRetry-Afterの秒数待ったのちリトライします。
一部APIは他のリクエストへの反映までに許容される猶予時間があります
POST /api/organizer/competition/:competition_id/finish 以下のエンドポイントは上記APIの情報の反映まで、レスポンスを返してから3秒の猶予が許容されます GET /api/organizer/billing GET /api/admin/tenants/billing POST /api/organizer/player/:player_name/disqualified 以下のエンドポイントは上記APIの情報の反映まで、レスポンスを返してから3秒の猶予が許容されます GET /api/player/:player_name GET /api/player/competition/:competition_id/ranking GET /api/player/competitions```
ベンチマーカーの認証について
ベンチマーカーはblackauthを利用せずに、ベンチマーカー自らがJWTを発行してリクエストを行います。よって、blackauthは負荷走行時に利用しません。
しかし、提供されているWebフロントエンドはblackauthが提供するエンドポイントを利用しているため、運営の目視による追試の際に必要なので停止しないでください。
忘れそうなので注意する
MySQLのデータについては、/home/isucon/webapp/sql/admin/ 以下にインスタンス作成時点のdumpファイルがあります。POST /initialize や init.sh ではこのdumpファイルは使用されません。
課金計算
大会ごとの請求明細
大会閲覧者数とは、スコア登録をしたプレイヤー以外で大会情報を閲覧した人です。大会ごとの請求額は、スコアを登録した人1人あたり100円、大会閲覧のみした人1人あたり10円で、合計金額が請求額となります。
大会が未完了の場合は0人(0円)になります。大会が完了しているかどうかのステータスは [大会一覧](https://isucon.t.isucon.dev/organizer/competitions) 画面を参照してください。
// NOTE: 先にadminDBに書き込まれることでこのAPIの処理中に
// /api/admin/tenants/billingにアクセスされるとエラーになりそう
// ロックなどで対処したほうが良さそう
ってやってるだけなので、やることはこういう感じかな
mysql> ALTER TABLE visit_history ADD INDEX `tenant_id_competition_id` (`tenant_id`, `competition_id`);
Query OK, 0 rows affected (19.51 sec)
Records: 0 Duplicates: 0 Warnings: 0
=> insert 遅くなるので逆に遅くなる