0

私にはDBMSの割り当てがあり、オンライン入札Webサイト全体を作成して、ユーザーが時間指定オークションでの入札、時間指定の可用性に基づいた今すぐ購入、その他多くのことの検索など、さまざまなことを実行できるようにします。私はウェブサイトを完成させましたが、1つの小さな例外があります。ユーザーが時間指定オークションに勝ったら、そのユーザーに勝者であることを通知し、24時間以内にアイテムをチェックアウトする必要があります。

私の初期のアプローチは、ユーザーがページにいるときにDBにクエリを実行して、入札時間が終了したかどうかを確認し、勝者が誰であるかを確認する単純なPHPスクリプトで構成されていましたが、このアプローチには2つの問題があります。1.ユーザーは、自分が勝ったかどうか、つまりページショッピングをしている場合は、常に更新する必要があります。2.ユーザーがオークション終了後1か月間サイトにログインしない場合、ユーザーは1か月間オークションに勝ったことを知らないため、チェックアウトまでの24時間のウィンドウを逃します。

cronジョブについて読んでいますが、スケジュールされたジョブであるため、効率的に処理されるようにジョブをスケジュールするのに都合のよい時間はないのではないかと心配しています。つまり、オークション終了後すぐに、勝ったすべてのユーザーを継続的に監視して知らせることはできません。

PHP exec()も読んでいますが、exec()が終了すると再実行されないため、このタスクを実行するために必要なツールかどうかはわかりません。

ですから、私の質問は、このタスクを支援するために私が何を実装できるかについて誰かが考えているかどうかです。

4

2 に答える 2

1

cronを使用する必要があります。1分ごとに実行してDBをチェックし、オークションが終了したかどうかを確認してください。あなたが解釈していると思うより大きな問題は、ユーザーへの通知です。その場合、彼らはサイト上にいない可能性があります(または彼らが勝ったときにランダムなページにいる可能性があります)、ウェブサイトを介して通知することに依存しないでください。代わりに、勝者を確認するためにcronによってPHPが呼び出され、勝者に通知するための電子メールが送信されることを検討してください。

Facebookについて考えてみてください(ユーザーベースが最も一般的なエクスペリエンスの例であるという理由だけで)-サイトにアクセスしている場合は通知領域を提供しますが、しばらくアクセスしていない場合は、通知メールを送信します何かが起こった。これはあなたがすべきことです。

于 2012-12-02T00:49:02.980 に答える
0

cronスケジューリングの使用を再検討する必要があります。非常に速い間隔でジョブを実行できます。

于 2012-12-02T00:46:04.317 に答える