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

问题描述 投票:2回答:3

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

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

ruby-on-rails ubuntu delayed-job rails-activejob
3个回答
6
投票

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

要开始处理,命令是:

bundle exec rake jobs:work

重新启动delayed_job命令是:

RAILS_ENV=production script/delayed_job restart

查看gems README了解更多信息。

EDIT

(根据评论)

您可以在用户的​​主页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

7
投票

使用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

0
投票

如果你正在使用gem 'delayed_job_active_record'。您在本地ubuntu系统上启动延迟作业,只需运行以下命令即可启动

./bin/delayed_job start

并重新启动

./bin/delayed_job restart

如果我们处于开发模式,我们将使用下面的rake任务。

bundle exec rake jobs:work
© www.soinside.com 2019 - 2024. All rights reserved.