我在我的Rails 5应用程序上使用Delayed Job作为Active Job的排队后端,但我不知道如何在启动后启动Ubuntu 14.04上的worker。我应该将rails jobs:work
包装成Bash脚本吗?我怎么能让它自动启动?或者最好使用bin/delayed_job
?
如何在启动时启动延迟作业?
答案 0 :(得分:6)
你所使用的操作系统并不重要(只要它不是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
答案 1 :(得分:5)
使用Whenever Gem,您可以设置一个在重启时运行它的cronjob。在schedule.rb文件中:
every :reboot do
rake 'start_delayed_jobs'
end
然后在你的rake文件中:
desc 'Start delayed jobs'
task :start_delayed_jobs do
system("#{Rails.root}/bin/delayed_job start")
end
end
答案 2 :(得分:0)
如果您使用的是gem 'delayed_job_active_record'
。
您在本地ubuntu系统上启动延迟的作业,只需运行以下命令即可启动
./bin/delayed_job start
并重新启动
./bin/delayed_job restart
如果我们处于开发模式,我们将改用以下rake任务。
bundle exec rake jobs:work