ilo*_*acs 2 ubuntu ruby-on-rails delayed-job rails-activejob
我在我的Rails 5应用程序上使用延迟作业作为Active Job的排队后端,但我不知道如何在启动后启动Ubuntu 14.04上的worker.我应该包装rails jobs:work成Bash脚本吗?我怎么能让它自动启动?还是优先使用bin/delayed_job?
如何在启动时启动延迟作业?
使用Whenever Gem,您可以设置一个在重启时运行它的cronjob.在schedule.rb文件中:
every :reboot do
rake 'start_delayed_jobs'
end
Run Code Online (Sandbox Code Playgroud)
然后在你的rake文件中:
desc 'Start delayed jobs'
task :start_delayed_jobs do
system("#{Rails.root}/bin/delayed_job start")
end
end
Run Code Online (Sandbox Code Playgroud)
你所使用的操作系统并不重要(只要它不是Windows:D).
要开始处理,命令是:
bundle exec rake jobs:work
Run Code Online (Sandbox Code Playgroud)
重新启动delayed_job命令是:
RAILS_ENV=production script/delayed_job restart
Run Code Online (Sandbox Code Playgroud)
查看宝石README了解更多信息.
(根据评论)
您可以在用户的主页中创建一些bash脚本start_delayed_jon.sh.
一些事情:
#!/bin/bash
cd /path/to/your/project/directory/
RAILS_ENV=development bundle exec rake jobs:work
Run Code Online (Sandbox Code Playgroud)
并在/etc/rc.local中运行它:
su -s /bin/bash - deploy /path/to/your/project/directory/start_delayed_jon.sh
Run Code Online (Sandbox Code Playgroud)
如果您正在使用gem 'delayed_job_active_record'. 您在本地 ubuntu 系统上启动延迟作业,只需运行以下命令即可启动
./bin/delayed_job start
Run Code Online (Sandbox Code Playgroud)
并重新启动
./bin/delayed_job restart
Run Code Online (Sandbox Code Playgroud)
如果我们处于开发模式,我们将使用下面的 rake 任务。
bundle exec rake jobs:work
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3088 次 |
| 最近记录: |