У меня есть Capistrano, развертывающее мое приложение на удаленном сервере Ubuntu на узле облака. Он работает, за исключением того, что Sidekiq не перезапускается. После развертывания новые задания Sidekiq застревают в очереди, пока они, наконец, не будут перезапущены. В настоящее время я вручную загружаю SSH в машину и запускаю sudo initctl stop/start workers
, который работает. Я не очень силен вообще с Капистрано, и мне до сих пор не удалось найти решение для этого. Я надеюсь, что мне не хватает чего-то очевидного для кого-то более знакомого, чем я. Вот соответствующая часть моего /config/deploy.rb файла:Capistrano не перезагружает Sidekiq
namespace :deploy do
namespace :sidekiq do
task :quiet do
on roles(:app) do
puts capture("pgrep -f 'workers' | xargs kill -USR1")
end
end
task :restart do
on roles(:app) do
execute :sudo, :initctl, :stop, :workers
execute :sudo, :initctl, :start, :workers
end
end
end
after 'deploy:starting', 'sidekiq:quiet'
after 'deploy:reverted', 'sidekiq:restart'
after 'deploy:published', 'sidekiq:restart'
end
UPDATE
Из моих бревен ответ:
DEBUG [268bc235] Running /usr/bin/env kill -0 $(cat /home/ubuntu/staging/shared/tmp/pids/sidekiq-0.pid) as [email protected]
DEBUG [268bc235] Command: cd /home/ubuntu/staging/releases/20160806065537 && (export RBENV_ROOT="$HOME/.rbenv" RBENV_VERSION="2.2.3" ; /usr/bin/env kill -0 $(cat /home/ubuntu/staging/shared/tmp/pids/sidekiq-0.pid))
DEBUG [268bc235] Finished in 0.471 seconds with exit status 1 (failed).
Это было просто - мне не хватало 'require 'capistrano/sidekiq''. –
Хммм ... до сих пор не перезагружается - я думал, что моя очередь просто загружается с заданиями, пока я не перезагружу вручную. –
Я не уверен, что происходит - возможно, sidekiq рушится ... просто запустил другое развертывание, и очередь, похоже, теперь работает. –