将服务器从乘客更改为puma后,延迟作业停止工作

时间:2018-02-14 07:09:58

标签: ruby-on-rails ruby ruby-on-rails-4 delayed-job

最近我刚将生产环境的服务器从乘客改为puma。在美洲狮延迟工作之前工作正常没有任何错误,但在美洲狮之后它停止了工作。

我正在运行3个延迟作业来处理两个不同服务器上的传入请求,方法是将它们分为服务器1:1作业和服务器2:2作业。

RAILS_ENV=production bin/delayed_job -i first --queues=job_1,job_2 start

此命令用于在部署后启动延迟作业。我正在使用Capistrano 3进行部署。我还有Capistrano版本2到3的升级版本。

在Capistrano 2,我们有

require 'delayed/recepies'

但是根据推迟的工作官方文档,我创建了一个rake任务并执行以便重新开始工作。

它在delayed_jobs表中创建一个新条目,作为Delayed :: Backend :: ActiveRecord :: Job。

我在这里做错了什么?有没有工人不听我的来电?我是否需要开始其他事情?

---- ----修订

这是我为重新启动作业而创建的rake任务。

task :restart do
  on roles(delayed_job_roles) do
    within release_path do
      with rails_env: fetch(:rails_env) do
        execute('cd #{current_path};RAILS_ENV=production bin/delayed_job -i first --queues=job_1,job_2 stop')
        execute('cd #{current_path};RAILS_ENV=production bin/delayed_job -i second --queues=job_1,job_2 start')
      end
    end
  end
end

after 'deploy:publishing', 'delayed_job:restart'

正如我所提到的,我正在运行两个单独的服务器来管理delayed_jobs。在服务器2上,delayed_job.log文件未使用最新日志进行更新。当我尝试运行delayed_job时,它在服务器1而不是服务器2上执行。队列在服务器2上运行以处理这些作业,当它在服务器1上运行时,它无法找到确切的源,我正在寻找执行

0 个答案:

没有答案