Ruby on Rails:如何在Heroku上运行自动rake任务

时间:2015-02-03 21:36:04

标签: ruby-on-rails postgresql heroku

在Heroku上运行的Rails应用程序中,运行从数据库中删除记录的自动rake任务的最佳方法是什么? 我想办一份工作,删除所有超过一个月的帖子,每月一次。

1 个答案:

答案 0 :(得分:3)

在Heroku上你可以设置调度程序:

https://addons.heroku.com/scheduler

然后告诉它运行rake任务。像这样:

LIB /任务/ your_task.rb

desc "describe your task"
task :clear_old_posts => [:environment] do
  posts = Post.where(created_at: <= Time.now - 1.month)
  posts.each do |post|
    post.destroy
  end
end

然后告诉Heroku调度程序每30天运行一次rake clear_old_posts。可以通过GUI配置调度程序,因此不要乱用crontab或任何东西。