Sidekiq守护进程在一秒钟后死亡

时间:2018-06-07 07:24:12

标签: ruby-on-rails ruby process sidekiq capistrano3

namespace :sidekiq do
  task :quiet do
    on roles(:app) do
      execute "pgrep -f 'sidekiq'| xargs kill -9 -USR1"
    end
  end
  task :restart do
    on roles(:app) do
      execute "cd #{current_path} bundle exec sidekiq -C config/sidekiq.yml -d"
    end
  end
end

after 'deploy:starting', 'sidekiq:quiet'
after 'deploy:reverted', 'sidekiq:restart'
after 'deploy:published', 'sidekiq:restart'

这是我在deploy.rb

中使用的脚本

它正确地杀死了进程,它也创建了一个守护进程,但在几秒之内它就会被杀死。我正在使用capistrano进行部署。

我认为守护进程是子进程,而capistrano部署是父进程,因此在完成部署后它会终止子进程(即守护进程)。

请帮助我,我在过去一周内陷入困境。

1 个答案:

答案 0 :(得分:0)

尝试使用模块capistrano-sidekiq。这很有效。

此外,您在一次执行中有两个命令,但缺少&&

execute "cd #{current_path} && bundle exec sidekiq -C config/sidekiq.yml -d"