如何在Rails项目中运行日常任务/脚本?

时间:2012-05-06 23:53:25

标签: ruby-on-rails ruby-on-rails-3 cron scheduled-tasks

我正在为我的应用程序开发计费系统,但我不确定如何设置每天运行的脚本,一个发送付款提醒(电子邮件),另一个用于降级尚未降级的订阅已经续订。

  • 有关如何执行此操作的任何提示?
  • 我需要注意的任何问题?
  • 我可以使用的任何宝石?

我已经完成了大部分购买方面,所以我不是在寻找像paypal_recurring或条纹这样的宝石 - 只需要处理付款提醒和处理过期的帐户。

2 个答案:

答案 0 :(得分:11)

我已经通过多种方式完成了这项工作,并且有很多方法可以做到这一点。我认为目前的最佳做法是使用Resque对作业进行排队,并使用Rescue Scheduler来安排作业。

Resque是一款可靠的“作业调度”应用程序,可以为您处理各种任务。 Resque Scheduler可以提供完整的cron表达式(除了调度任务的其他方法之外)来管理作业。

此方法的一个优点是,您可以获得Resque Web应用程序,该应用程序为您提供了一个Web应用程序,用于监视作业(或启动它们以进行一次性作业运行)。

我已经将这种方法与Heroku一起使用,它运行良好且可靠。

答案 1 :(得分:3)

每当https://github.com/javan/whenever是使用cron定义计划任务的好方法。或者您可以直接使用cron:http://www.ameravant.com/posts/recurring-tasks-in-ruby-on-rails-using-runner-and-cron-jobs