Sid部署後,ekiq會在Capistrano 2.x中自動重新啓動。
Capistrano酒店 - sidekiq寶石負責管理,它說:
if fetch(:sidekiq_default_hooks)
before 'deploy:update_code', 'sidekiq:quiet'
after 'deploy:stop', 'sidekiq:stop'
after 'deploy:start', 'sidekiq:start'
before 'deploy:restart', 'sidekiq:restart'
end
上線的寶石文件的lib/Capistrano酒店/任務/ capistrano2.rb 26-31。
:sidekiq_default_hooks在塊
Capistrano::Configuration.instance.load do
_cset(:sidekiq_default_hooks) { true }
它的上方設置所以它是由配置對於該特定環境中加載一個Capistrano的實例變量。
的sidekiq:quiet命令運行
run_as "if [ -d #{current_path} ] && [ -f #{pid_file} ] && kill -0 `cat #{pid_file}`> /dev/null 2>&1; then cd #{current_path} && #{fetch(:sidekiqctl_cmd)} quiet #{pid_file} ; else echo 'Sidekiq is not running'; fi"
而且我通過使用默認Capistrano的2部署配置假設你的部署過程看起來像:
所以 - 根據您可以確認它每次都會重新啓動。如果您願意,可以使用Capistrano 2手動更改部署過程,或者也可以更改:sidekiq_default_hooks變量並以這種方式定義您自己的Sidekiq過程。
您希望sidekiq重新啓動。如果沒有,那麼你的工作將會有陳舊的代碼。所有這些都在內存中運行。所以如果你更新你的rails代碼,只是部署新的代碼將不會更新sidekiq中運行的代碼。 – unflores
我回答了您的問題嗎? – noname