delayed_job을 사용하여 구성을 간단하게하고 작업 대기열을 처리하는 레이크 작업을 호출하는 cronjob을 사용하는 것이 좋습니다.
Monit도 하나님을 대신 할 수있는 좋은 대안이며 프로세스 모니터링을 위해 더 안정적이고 배가 고픈 것 같습니다. 지연 작업에 대한
당신이 당신의 배포 스크립트에 다음을 추가 할 필요가
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 보석에서 이러한 레서피를 추출했다 (당신이 카피 스트라 노에 배포 할 계획 가정).
글쎄, 백그라운드 큐잉을 위해 beanstalkd를 사용하고 있습니다. delayed_job은 Rails에 의존적인데, x 초마다 db를 폴링한다는 것은 말할 필요도 없다. cron을 사용하여 irc에서 논의 된 바와 같이, 나는 새로운 아이디어를 찾고있었습니다. –