3

まず第一に、これは「戦略」または「アルゴリズム」のような質問であり、ここでのルールに適合するかどうかはわかりません. これが間違った場所にある場合はご容赦ください。そうであれば、どこに質問すればよいかを教えてください。敵対する必要はありません。

私も調査を行いました(Node.js - Monitoring a database for changesInvoking a PHP script from a MySQL triggerなどの質問を読んでください)が、本当に満足のいく答えが見つからなかったので...

私のシナリオ: 私はリザーブ オークション サイトを運営しています。製品は 100 米ドルの価格に設定されており、オークション期間中 (5 分~10 分) に価格が (複数回) ランダムな時間にランダムな金額に下がります。これらのランダムな量と時間は、実際には売り手によって最初から事前に設定されています。

多くのバイヤー/ウォッチャーが存在し、価格の下落が発生したときにリアルタイムの価格で更新する必要があります. 1. node.js を使用して特定のファイルを監視できます (各製品には、その製品の現在の価格を含むファイルがあり、cron を使用してこれらのファイルを更新するだけですか?) 2 . または、価格変更がいつ発生するかを事前に知っていたので、特定の時間に起動して、それを見ているすべてのユーザーに通知する各製品の「タイマー」を使用できますか?

より良い方法もいくつかあると思います。そのため、ここに投稿したいと思います。誰かがすでに同様のことを行っていることを願っています

事前にどうもありがとうございました。

4

2 に答える 2

1

これはどのようなデータベースですか? CouchDB の場合は、_changes フィードを監視して、いつ何かが変更されたかを正確に知ることができます。これらの購入者が Web ブラウザーを使用している場合、このフィードとの同期が容易になります。

変更フィードがない別の種類のデータベースの場合は、Pub/Sub を使用して、価格を更新したらすぐにチャネルに公開する必要があります。次に、別の側でリッスンし、購入者が Web ページにいる場合は、WebSocket でビューを更新します。Trello のインフラストラクチャは多かれ少なかれこのようなものです (Pub/Sub 用の Redis、次にサブスクリプションで Web ソケットをフックして、Web ページの更新を受け取ります)。

リアルタイムでそれを行う唯一の方法だと思います。イベントのリッスン。何かが変更されたかどうかを x ミリ秒ごとに確認すること (別名ポーリング) は、リアルタイムではありません。

于 2012-08-19T11:06:23.880 に答える
0

最も簡単な方法は、これらの日付を事前に取得し、ページの読み込み時にクライアントに送信してから、クライアントでタイマーを設定することです。セキュリティに厳しい場合は、時刻のみを送信し、クライアントが価格を表示しようとしているときにのみ価格を取得できるようにします。どちらも選択できない場合は、定期的にサーバーをポーリングするか、データをクライアントにプッシュできる場合は、タイマー オン サーバー アプローチを使用します。

于 2012-08-19T07:29:18.247 に答える