Jewel-mmo開発日記

RubyでMMORPGを作る過程を記録する日記。 Yokohama.rb 発起人。
2006-09-21

[プラポケ]連打するとコマンドを複数回実行できてしまうバグ

気になって試してみたのだけど実証できない。どうやら config/lighttpd.conf で、

"min-procs"       => 1,
"max-procs"       => 1,

としていたのが幸いしていたみたい。 2 に変えてコントローラに sleep をはさんだらバグを確認できた。タイミングがシビアだから sleep を使わないとほとんど発生しないとは思うが。

players に lock_version カラムを追加して修正。 他は大丈夫だよなあ。ショップのアイテム購入でも同様のバグがあったはずだけど、 player.jewel 値の減算後の save で lock_version に引っかかるから大丈夫なはず……。

この手のものってトランザクションで囲むだけではダメなのね。これだからWebの素人は><