2

特定の目標を達成したときにユーザーに報酬を与えるイベントベースの通知およびバッジシステムを作成したいと思います。目標には次のものが含まれます。

  • フォーラムに20のエントリを投稿する->ホームページにアラートを表示してユーザーを強調表示し、バッジを授与
  • 10日連続でサイトにログイン->ホームページのユーザーへのメッセージおめでとう
  • 10のフォーラム投稿へのコメント->フォーラムバッジ賞

これはAASMなどのステートマシンの仕事でしょうか?私はそのようなシステムであまり遊んだことがありません。それがイベントを定義する方法でしょうか、それともこのタイプの動作に対応するより優れたプラグイン/ソリューションがありますか?アプローチに関するチュートリアルや推奨事項をいただければ幸いです。

4

1 に答える 1

1

ここで注意が必要なのは、バッジをいつ授与するかを決定するために必要な状態をどのように維持したいかを理解することです。レール用のステートマシンプラグインは、それをあまり役に立ちません。

たとえば、ユーザーが10日間連続でログインしたかどうかを、コードの一部でどのように判断しますか?これを理解すると、イベント処理を整理する方法について心配することができます。

彼らがバッジを取得したときにリアルタイムで通知する必要がありますか?もしそうなら、ActiveRecord :: Observerでこれを簡単に行うことができますが、長期的にはレイテンシーの問題が発生する可能性があります(http://api.rubyonrails.org/classes/ActiveRecord/Observer.html

リアルタイムで行う必要がない場合は、何らかの形のバックグラウンドジョブで行うことができます。そこにバックグラウンドジョブのためのライブラリがたくさんあります。スケーリングを気にせず、何かを早く立ち上げたい場合は、worklingを使用します。

于 2010-02-12T21:49:23.580 に答える