我在我的Rails 5应用程序中使用Delayed Job作为Active Job的排队后端,但我不知道如何在Ubuntu 14.04启动后启动worker。我应该将
rails jobs:work
包装到Bash脚本中吗?如何使其自动启动?或者使用bin/delayed_job
更好?如何在启动时启动延迟作业?rails jobs:work
包装到Bash脚本中吗?如何使其自动启动?或者使用bin/delayed_job
更好?如何在启动时启动延迟作业?无论你使用什么操作系统(只要不是Windows :D),都没有关系。
开始处理的命令是:
bundle exec rake jobs:work
重新启动delayed_job的命令是:
RAILS_ENV=production script/delayed_job restart
有关更多信息,请查看gems README。
(根据评论)
您可以在用户的主目录下创建一些bash脚本start_delayed_jon.sh
。
例如:
#!/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
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
如果您正在使用gem 'delayed_job_active_record'
。
在本地的ubuntu系统上启动延迟任务,只需运行以下命令即可开始:
bundle exec bin/delayed_job start
./bin/delayed_job start
并重新启动
./bin/delayed_job restart
如果我们处于开发模式,那么我们将使用以下的Rake任务。
bundle exec rake jobs:work
用于生产:
RAILS_ENV=production script/delayed_job -n2 restart
or
RAILS_ENV=production bin/delayed_job -n2 restart
n2是你想要在启动时重新启动的延迟作业服务器数量,如果使用命令“start”而不是“restart”,请使用“start”命令。
文档:https://github.com/collectiveidea/delayed_job#restarting-delayed_job