Я бы порекомендовал, для простоты настройки, используя delayed_job и cronjob, который вызывает задачу rake, которая имеет дело с очередями заданий.хорошая альтернатива Богу и, кажется, более стабильная и менее требовательная к памяти для мониторинга процессов.
Для отложенной работы вам необходимо добавить следующее в ваш скрипт развертывания (при условии, что вы планируете развертывать с помощью capistrano)
namespace :delayed_job do
def rails_env
fetch(:rails_env, false) ? "RAILS_ENV=#{fetch(:rails_env)}" : ''
end
desc "Stop the delayed_job process"
task :stop, :roles => :app do
run "cd #{current_path};#{rails_env} script/delayed_job stop"
end
desc "Start the delayed_job process"
task :start, :roles => :app do
run "cd #{current_path};#{rails_env} script/delayed_job start"
end
desc "Restart the delayed_job process"
task :restart, :roles => :app do
run "cd #{current_path};#{rails_env} script/delayed_job stop"
run "cd #{current_path};#{rails_env} script/delayed_job start"
end
end
Мне пришлось извлечь эти получатели из гема delayed_job, чтобы они запустились.