Ruby on Rails で作成された Web アプリ用の簡単な通知システムをセットアップしたいと考えています。私のウェブサイトは単純なオークション サイトですが、各オークションには 2 つの段階があります。5 日間の「最低入札価格なし」の段階で誰でも入札できます。段階で入札できます。
オークションが第 1 段階から第 2 段階に移行したときに、ユーザーに通知したいと考えています。これを行う最善の方法は何ですか?
私は2つの設計オプションを考えました:
RoRにこれがあるかどうか、またこれが効率的なシステムであるかどうかはわかりません(数百のオークションに数千のユーザーが参加するシステムを構築したいので、それほど大きくなるかどうかは関係ありません。これは一種の高品質でスケーラブルな RoR の書き方を学ぶためのサイド プロジェクトです) が、基本的に、ユーザーがオークションに入札すると、ユーザーはオークションの何らかのオブザーバーになります。その後、どういうわけか 5 日の時点で、すべてのリスナーに通知されます。RoRでそのトリガーがどのように発生するかはわかりません(「作成から5日後にトリガー」などと言う方法はありますか?)。要約すると、Observer パターンを使用したいと思います。
私にとって重要な問題は、一定時間後にトリガーする方法を見つけようとすることです。それを行う最善の方法は、各オークションに「オークション状態」と呼ばれる状態変数を設定することだと思います。一定期間が経過すると移行し、その時点でオークションのすべてのオブザーバーに通知が送られます。
毎日決まった時間に毎日実行される rake タスクがあります。各オークションを通過し、オークションが 6 日目にある場合は、そのオークションのオブザーバーに通知されます。これはかなり悪い方法のように思えます - 私はステートフルなオークションを行うという考えが好きです。
考え?
ありがとう!りんご