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

How to start Delayed Job with Ubuntu?

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

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

你在OS什么并不重要(只要不是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

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

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

./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 是在启动时要重新启动的延迟作业服务器的数量,请改用命令启动或重新启动。

文档:https://github.com/collectiveidea/delayed_job#restarting-delayed_job