0

我正在构建一个不断收集数据的应用程序。我想为用户提供一个可定制的警报系统,他们可以在其中为他们想要通知的信息类型指定参数。最重要的是,我希望用户能够指定警报的频率(当它们出现时,每日摘要,每周摘要)。

有没有关于这个主题的最佳实践或指南?

我的直觉告诉我排队和工人会参与其中,但我不确定如何。

我使用 Parse.com 作为我的数据库,并且还可能使用 Lucene 风格的搜索来索引所有内容。因此,这开启了用户指定查询字符串以指定他/她想要的警报的可能性。

4

1 回答 1

2

如果您使用的是 Rails、Heroku 和 Parse,我们已经做了类似的事情。我们实际上创建了第二个 Heroku 应用程序,它没有 web dyno——它只有一个 worker dyno。那个人仍然可以访问同一个 Parse.com 帐户并在 rake 任务中运行其所有任务,就像他们在此处指定的那样:

https://devcenter.heroku.com/articles/scheduler#defining-tasks

我们有几个类可以处理繁重的工作:

class EmailWorker
  def self.send_daily_emails
    # queries Parse for what it needs, loops through, sends emails
  end
end

我们在 lib/tasks 中也有 scheduler.rake:

require 'parse-ruby-client'
task :send_daily_emails => :environment do
  EmailWorker.send_daily_emails
end

我们在 Heroku 中的调度器面板是这样的:

rake send_daily_emails

我们将其设置为每晚运行。请注意,面向公众的 Heroku Web 应用程序不执行此工作,而是“调度程序”版本。您只需要确保每次更新代码时都推送到两者。这种方式是免费的,但如果你想组合它们,这很简单,因为它们是相同的代码库。

您也可以通过heroku run rake send_daily_emails在您的开发机器上运行来测试它。

于 2013-02-06T15:56:53.233 回答