在我的申请中,有些帖子将在一天中的某个时间到期。
到期后,客户需要通过电子邮件通知。
我每1分钟使用一次Rails cron whenever
,它会在指定时间过期并将电子邮件发送给客户。
Schedule.rb
every 1.minutes do
rake "ad_has_expired_task"
end
这会是一个更好的方法吗?
感谢任何帮助。
由于
答案 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中编写邮件程序
上述代码无法直接执行,您需要由您的公司进行自定义。
希望它有所帮助。
参考: