可扩展的方式来设置产品订阅?

时间:2012-04-02 14:19:54

标签: ruby-on-rails ruby ruby-on-rails-3 ruby-on-rails-3.1

我不确定是否最好创建一个后台作业来一直扫描数据库以获得更新的产品价格,特别是在我的应用程序中,如果没有观察到数百万的产品,我预计会有100,000价格。

我有两个模型,ProductPriceProduct可以有许多不同的Prices。所以我认为应该这样做的方式是:

  1. 订阅产品。
  2. 创建后台作业,每小时扫描数据库以获得更低的价格。
  3. 通过电子邮件通知用户。
  4. 我不确定#2,如果这是完成它的最佳方式。你们会建议什么?

2 个答案:

答案 0 :(得分:2)

如果是我,我会使用数据库触发器而不是后台作业清扫器。

以下是触发器的介绍:

http://www.mysqltutorial.org/mysql-triggers.aspx

答案 1 :(得分:2)

如果你的Rails应用程序正在向其数据库中的产品添加新的Price对象,为什么每次添加新的Price对象时都没有ActiveRecord回调(在此实例中为after_create)?

ActiveRecord回调可能会启动延迟作业,向用户发送有关新的较低价格的电子邮件。