0
我有Capistrano将我的应用程序部署到云主机上的Ubuntu远程服务器。它的工作原理除了Sidekiq不会重新启动。部署完成后,新的Sidekiq作业会停留在队列中,直到最终重新启动。我目前手动SSH进入机器并运行sudo initctl stop/start workers
这是有效的。根据Capistrano和我的研究,我目前还没有找到解决这个问题的办法。我希望我对比我更熟悉的人丢失一些明显的东西。这里是我的/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崩溃了...刚刚运行另一个部署,现在队列似乎工作。 –