2016-09-27 72 views
0

我使用Delayed Job作为我的Rails 5应用上的Active Job的排队后端,但我不知道如何在启动后在Ubuntu 14.04上启动worker。我是否应该将rails jobs:work换成Bash脚本?我将如何让它自动启动?还是最好使用bin/delayed_job如何使用Ubuntu启动延迟作业?

如何在启动时启动延迟作业?

回答

1

你的操作系统并不重要(只要它不是Windows:D)。

处理开始的命令是:

bundle exec rake jobs:work 

重启delayed_job的命令是:

RAILS_ENV=production script/delayed_job restart 

更多信息退房gems README

编辑

(按评论)

可以在用户家中start_delayed_jon.sh创造一些bash脚本。

沿着东西线:

#!/bin/bash 
cd /path/to/your/project/directory/ 
RAILS_ENV=development bundle exec rake jobs:work 

在/etc/rc.local中运行它:

su -s /bin/bash - deploy /path/to/your/project/directory/start_delayed_jon.sh 
+0

没错,这就是我的开始是我的开发机器上,但如何我已经Ubuntu的自动在服务器引导创业吗? – ilovebigmacs

+0

@ilovebigmacs请参阅编辑 –

+1

PS。我会推荐'Sidekiq'而不是DJ .. –

3

使用Whenever Gem,你可以设置运行它在重新启动一个cronjob。在您的schedule.rb文件:

every :reboot do 
rake 'start_delayed_jobs' 
end 

然后在您的耙文件:

desc 'Start delayed jobs' 
    task :start_delayed_jobs do 
    system("#(Rails.root}/bin/delayed_job start") 
    end 
end 
+0

这可以工作,但快速修复错字 - >系统(“#{Rails.root}/bin/delayed_job start”) – Jay