0

私はphp/mysqlでプラットフォームを構築しており、ユーザーは製品の一部を使用できます。基本的に、彼らは入札したいパーセンテージと入札したいマークアップ価格を例えば1.2で選択します。

私が抱えている問題は、同じ製品に対して同時に複数の入札が行われた場合、入札をキューに入れる必要があるため、処理時に有効な入札のみが通過することです。たとえば、1.2の値で20%が利用可能であり、2人のユーザーが同時に1.2で20%に入札した場合、各入札のプロセスは次のようになります。1-----現在の入札を選択2-----php処理入札がまだ利用可能かどうかを判断する3-----入札する

ここでの問題は、「プレースビッド」のいずれかの前に「利用可能かどうかのチェック」の両方が発生した場合、両方のビッドが実行され、事実上株式の問題が発生することです。

次のプロセスを実行する前に、ステップ1〜3のすべてが入札に対して行われるように、このプロセスをキューに入れる方法はありますか。

私の最初の考えは、キャッシュテーブルを使用してすべての入札を保存し、数秒ごとにcronを実行して、キャッシュテーブルからIDの順に処理し、それに応じて通知することでしたが、これはトラフィックの多いシステムでは実行できないようですサーバーがそれに打ちのめされるので。

どんな助けでも大歓迎

4

2 に答える 2

0

2つの入札が同じになることがない場合は、データレイヤーで解決します。item_id、bid_value、およびその他の一意である必要があるものに基づいて、入札テーブルに一意のキーを作成します。2番目の挿入は失敗し、投稿に殴られたことをユーザーに知らせることができます

于 2012-06-21T11:30:07.717 に答える
0

私はPHPレベルでこれを解決し、最初に「承認済み入札」として入札を挿入して、後続の入札が失敗するようにしました。次に、入札が正常かどうかを確認するためにチェックを実行しました。そうでない場合は、入札が削除され、テーブルが新しい入札の必要に応じて更新されます。

于 2012-06-22T11:20:48.727 に答える