Rails + Heroku ::在cron任务中执行rake任务

时间:2011-10-09 09:17:25

标签: heroku cron rake ruby-on-rails-3.1

问题

1)当在Heroku上运行cron任务时,Heroku是否有一个时间限制,即cron任务应该只持续X分钟,或者cron任务能否在完成处理所需的任何时间运行?

2)为了优化我的应用程序,我想将所有处理都移到批处理模式。所以我有很多更新查询。基本上,一个Heroku cron文件变得混乱。我该怎么做才能清理代码?我应该创建多个rake任务并从cron文件中调用任务任务吗?

2.1)如果您同意,那么如何从cron任务调用rake任务?假设有3个独立的佣金任务佣金账户:账单,佣金账户:收款,佣金账户:清理。我如何在cron文件中调用它们?

1 个答案:

答案 0 :(得分:3)

我没有任何时间限制。

使用多个任务而不是一个大的cron任务是一个好主意。它们不仅在分离时更容易调试和维护,而且您还可以在需要时单独运行它们。并且考虑周全的代码本身就是一个好主意。

从其他任务执行任务就像Rake::Task[task].execute一样简单。你会有这样的事情:

desc 'Heroku cron job'
task :cron => :environment do
    %w{accounts:billing accounts:collections accounts:cleanup}.each do |task|
        Rake::Task[task].execute
    end
end