I think we did it by using a queuing solution like queueclassic ( https://github.com/railsforcharity/railsforcharity/blob/master/app/controllers/tasks_controller.rb#L35 ) Also take a look at the railscast for it.