需要建议在Rails中创建基于事件的消息传递和标记系统

时间:2010-02-12 17:36:33

标签: ruby gem event-based-programming

我想创建一个基于事件的通知和徽章系统,以便在用户完成特定目标时奖励他们。目标可能包括:

  • 在论坛上发布20个条目 - >在主页上突出显示用户的警报,颁发徽章
  • 连续10天登录网站 - >恭喜主页上的用户留言
  • 评论10个论坛帖子 - >论坛徽章奖

这是AASM等状态机的工作吗?我没有玩过这样的系统。这是定义事件的方法还是有更好的插件/解决方案来适应这种行为?任何有关方法的教程或建议都将不胜感激。

1 个答案:

答案 0 :(得分:1)

这里似乎很棘手的部分是弄清楚你想要如何保持确定何时颁发徽章所需的状态。用于rails的状态机插件对你没有多大帮助。

例如,一段代码如何确定用户是否已连续10天登录?一旦你搞清楚了,你就可以担心如何组织事件处理。

您是否需要在获得徽章时实时通知他们?如果是这样,那么你可以使用ActiveRecord :: Observer轻松完成这项任务,但在长途运行中可能会遇到一些延迟问题(http://api.rubyonrails.org/classes/ActiveRecord/Observer.html

如果您不需要实时执行此操作,则可以使用某种形式的后台作业执行此操作。那里有很多用于后台工作的库。当我不关心缩放并且想要快速获得某些东西时,我会使用workling。