2012-02-17 55 views
2

我有我的rails站点部署在apache下。 Apache作为一项服务运行。现在我已经添加了delayed_job,并且事情很好。Rails 3 delayed_job重启后启动

现在我想与apache一起启动工作,例如,重新启动服务器后,我的站点和工作人员已准备就绪,因此我不必登录并键入“sudo RAILS_ENV =生产脚本/ delayed_job - n 2开始“。

的另一个问题是,每当我要开始我的delayed_job必须使用“命令” ...

任何想法如何避免这些问题,2?

感谢您的帮助。

回答

3

使用whenever gem和其“每个:重启”功能。在schedule.rb中:

environment = ENV['RAILS_ENV'] || 'production' 
every :reboot do 
    command "cd #{path} && #{environment_variable}=#{environment} bin/delayed_job --pool=queue1:2, --pool=queue2,queue3:1 restart" 
end 
1

你可以创建一个shell脚本来执行你需要的命令吗?

#!/bin/sh 

# stop delayed job 

# restart apache 
apachectl restart 

# start delayed job 
sudo RAILS_ENV=production script/delayed_job -n 2 start