ホームページ >バックエンド開発 >PHPチュートリアル >フラッシュセールプログラム設計について

フラッシュセールプログラム設計について

WBOY
WBOYオリジナル
2016-06-23 14:27:10966ブラウズ

現在のアイデアは次のとおりです:

ユーザーがフラッシュ セールに参加するとき、すべてのユーザーをデータベースに挿入し、タイマーがゼロになるまで時間に従ってポーリングします。ポーリングされたユーザーがフラッシュ セールの勝者になります。 ,
ポーリング時間は 1 秒ですが、問題は、他のユーザーが最後の 1 秒でフラッシュ キル ボタンを押すと、カウンターが追加され、その後ポーリングが続行されることです
なぜ不合理なのかわかりません。 ! !

あなたの意見を表明してください!ありがとうございます


ディスカッション(解決策)への返信

いいえ、その時が来たら、ただロックしてそのままにしておいてください、なぜ私が尋ねなければなりませんか!

はい、時間が過ぎるとテーブルがロックされ、挿入が禁止されます。

次にスタックの考え方ですが、最後に挿入されたものが落札者になります。

最後の瞬間に複数の落札者がいる場合は、ポーリングします
(実際、個人的にはポーリングは必要ないと思います。desc で注文し、クエリを処理するために mysql に渡すだけです)

うわー、理にかなっていますが、私は十分に合理的だとは思わないでください
公平性を重視してください 正義

即死の話を聞いていると、数秒で 1 つしか得られないようですか?

この場合、開始時間のカウントダウンが必要になります。時間が経過すると、最初の注文が完了すると、誰かがすでに購入したかどうかが確認されます。置かれた場合、購入は停止されます。

これでいいんじゃないの?

なるほど、それは合理的ではないと思います
公平性と正義に注意してください
直前に購入する場合は同時購入はなく、1 人だけが落札するのが最も公平です。 。

複数の人が同時に入札した場合、誰が入札するべきだと思いますか?それは単なるランダムなものではなく、他の誰にとっても公平ではありません。追加の rand プロセスがあります。直接注文して mysql に決定させる方がよいでしょう。

知っています
実際、フラッシュセールの原理も同じです

最後に落札したものが落札されます!

また、挿入時間をマイクロ秒 (1 秒 = 100 万マイクロ秒) に設定した場合、同時実行は不可能だと思います。

本当に同時実行性がある場合、あなたのサイトはすでに非常に NB であり、ここに来て質問することは不可能であり、あなたの周りにはすでに多数のエンジニアがいます。

また、挿入時間をマイクロ秒 (1 秒 = 100 万マイクロ秒) に設定した場合、同時実行は不可能だと思います。

本当に同時実行性がある場合、あなたのサイトはすでに非常に NB であり、ここに来て質問することは不可能であり、あなたの周りにはすでに多数のエンジニアがいます。

ははは...

はは、その過程でさまざまな問題に遭遇しました。つまり、ブラウザごとに ajax リクエストの時間が異なるということです

。 。 。
考えてみて、クライアントに時間を直接表示するのは不適切です

最後に行うことは、ロック テーブル メソッドを使用することです。 。 。

ほとんど使えません、ありがとうございます! !

質問させていただきたいのですが、私はコンピューターの専門家ではないので、指定した時間にクリックを自動的に更新するフラッシュキラーのようなプログラムを作りたいのですが、どうすればよいですか。私がやりますか?

ははは、プロセス中にさまざまな問題に遭遇しました。異なるブラウザーが ajax リクエストを行うと時間が異なります。 。 。
考えてみて、クライアントに時間を直接表示するのは不適切です

最後に行うことは、ロック テーブル メソッドを使用することです。 。 。

ほとんど使えません、ありがとうございます! !


オーナーさん、このようなプログラムを開発してもらえませんか?購入したいのですが、QQ 63566536 電話番号 13283250777

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。