如何使用Ubuntu启动延迟作业?

时间:2016-09-27 08:38:57

标签: ruby-on-rails ubuntu delayed-job rails-activejob

我在我的Rails 5应用程序上使用Delayed Job作为Active Job的排队后端,但我不知道如何在启动后启动Ubuntu 14.04上的worker。我应该将rails jobs:work包装成Bash脚本吗?我怎么能让它自动启动?或者最好使用bin/delayed_job

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

3 个答案:

答案 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