无论何时发送电子邮件,都可以管理gem

时间:2014-03-27 12:29:06

标签: ruby-on-rails whenever

在我的申请中,有些帖子将在一天中的某个时间到期。

到期后,客户需要通过电子邮件通知。

我每1分钟使用一次Rails cron whenever,它会在指定时间过期并将电子邮件发送给客户。

Schedule.rb

every 1.minutes do
  rake "ad_has_expired_task"
end

这会是一个更好的方法吗?

感谢任何帮助。

由于

1 个答案:

答案 0 :(得分:1)

对于小应用程序,这种方式很好,但对于更大的应用程序,这可能会让cpu忙碌。

以下是我网站的解决方案。

gem sidekiq
gem whenever
在scheduler.rb中

every 1.day do
  rake "scan_expired_task"
end

in rake taks scan_expired_task.rake

if post.will_expire_today
   MyMailerWoker.perform_async(related_user_ids, post.expired_at-Time.now)
end

然后在MyMailerWoker中编写邮件程序

上述代码无法直接执行,您需要由您的公司进行自定义。

希望它有所帮助。

参考:

https://github.com/mperham/sidekiq/wiki/Getting-Started