2013-01-24 63 views
0

我正在研究並發現很難找到啓動delayed_job gem工作人員的主流方式。到目前爲止,我有一個解決方案中使用Capistrano的:Rails 2 + Delayed_job 2.0.7:讓工作人員自動啓動工作的最佳方式?

# add this to config/deploy.rb 
namespace :delayed_job do 
    desc "Start delayed_job process" 
    task :start, :roles => :app do 
    run "cd #{current_path}; script/delayed_job start #{rails_env}" 
    end 

    desc "Stop delayed_job process" 
    task :stop, :roles => :app do 
    run "cd #{current_path}; script/delayed_job stop #{rails_env}" 
    end 

    desc "Restart delayed_job process" 
    task :restart, :roles => :app do 
    run "cd #{current_path}; script/delayed_job restart #{rails_env}" 
    end 
end 

after "deploy:start", "delayed_job:start" 
after "deploy:stop", "delayed_job:stop" 
after "deploy:restart", "delayed_job:restart" 

但顯然可以有一些情況下,Apache用戶從Rails應用程序的用戶,這將導致問題diferent?有沒有更好的方式來自動化工作進程,以便我不必坐在我的比賽和類型

$ RAILS_ENV=production script/delayed_job start 
$ RAILS_ENV=production script/delayed_job stop 

整天在控制檯?

+0

你能解釋一下好嗎?你想從服務器上remotingly或本地管理delayed_job?使用capistrano時出現什麼錯誤?你想要某種重新啓動或每次部署時自動完成的事情?目前尚不清楚 – arieljuod

+0

@arieljuod沒有錯誤,只是想知道是否有辦法自動啓動和停止工作人員。有沒有這種capistrano方法不起作用的情況(使用apache和rails用戶的權限問題?) – Edmund

回答

0

我創建了一個rake任務來每天運行一次「rake:jobs workoff」。您可以根據需要隨時設置。我使用了heroku調度程序。

相關問題