Supreme 20FW Week18

Bot開発

今季最後となるWeek18でした。人気コラボなどもなく、それほど注目されているアイテムはなさそうでした。Swarovski Zippo、WINDSTOPPERのNew Eraなどが人気になりそうな感じです。

 

前回、ようやく「High Traffic」エラーが解決し、再度オンライン代行できる見通しが立ちましたので、テストも兼ねて無料代行を募集しました。Twitterのフォロー、RT、購入報告が条件です。

やはり渋めの週とあって、あまり人は集まらず、一名の方に代行依頼いただけました。

今回狙う商品は「Swarovski Zippo」になります。自分の分を含めて2つ狙うことにしました。

前回からの改良

購入確率を上げるため、PC、モバイル、リクエスト型を組み合わせて挑戦です。基本的には1商品に対して複数タイプのBotを走らせようと思います。例えば、予備を含めて最低2タスク割り当てます。

  1. PCブラウザ型 x 2タスク
  2. モバイルブラウザ型 x 2タスク
  3. リクエスト型 x 2タスク

重複オーダーが通らないようにお互い協調動作させ、どれか一つオーダーが通ればタスク終了となるような仕組みになっています。クラウドサーバ上で動かしているので、サーバを増やせばタスク数を増やせますので、基本的にはタスク数の上限はありません。

前回は実装したモバイル、リクエスト型では、リトライ処理に問題が見つかりましたので、今回はそれを修正しました。

直前でreCAPTCHAプログラムが上手く動かず少し焦りましたが、なんとかギリギリに設定を終え、オンライン開始を迎えました。

今回の結果

時間になるとそれほど混雑する様子もなく、Zippo2つ無事購入できました。難しい週ではありませんでしたが、それでも早い時間に完売しました。

ログを確認していると「このアイテムは既にオーダー済みです」エラーが頻発していました。前回のリトライエラーの修正が影響しているようで、マルチカートインの処理が問題となったようです。

しかし、今回で「オーダー済み」が起こる原因が分かった気がします。商品をカートインすることで、セッションIDが払い出されますが、ボタンを連打するとセッションIDが上書きされ、「オーダー済み」が発生するようです。アクセス集中時にカートインボタンが反応しないからと連打すると高確率で起こるんじゃないでしょうか。

 

「オーダー済み」エラーがモバイル、リクエスト型両方で発生していたので、どちらで購入できたか追うことができませんでしたが、リクエスト型も無事に動いていることが分かりました。

リクエスト型の処理をよく見直してみると、重要な問題が発覚しました。ずっと403エラーが出ていたのが気になっていましたが、なんと決済プロキシを経由するのを忘れていたのです…そりゃチェックアウトが通らないわけです。

前回はオンラインが終わったあと急いで店舗に向かったため、確認がおろそかになっており、見落としていました。

でも逆に不思議なのが、決済プロキシを経由しなくてもチェックアウト出来ていたのもあることですね…クラウドサーバ系のIPアドレスが全て弾かれているわけではないのは意外でした。

これは次回に備えて修正するとして、ようやくリクエスト型もまともに動かすことができると思うと楽しみです。

コメント

タイトルとURLをコピーしました