lib/capistrano/tasks/monit.cap in capistrano-sidekiq-0.4.0 vs lib/capistrano/tasks/monit.cap in capistrano-sidekiq-0.5.0
- old
+ new
@@ -16,36 +16,55 @@
namespace :sidekiq do
namespace :monit do
task :add_default_hooks do
- after 'deploy:check', 'sidekiq:monit:unmonitor'
- after 'deploy:publishing', 'sidekiq:monit:monitor'
+ before 'deploy:updating', 'sidekiq:monit:unmonitor'
+ after 'deploy:published', 'sidekiq:monit:monitor'
end
desc 'Config Sidekiq monit-service'
task :config do
on roles(fetch(:sidekiq_role)) do |role|
@role = role
- template_sidekiq 'sidekiq_monit.conf', "#{fetch(:tmp_dir)}/monit.conf", @role
- sudo "mv #{fetch(:tmp_dir)}/monit.conf #{fetch(:sidekiq_monit_conf_dir)}/#{sidekiq_service_name}.conf"
+ template_sidekiq 'sidekiq_monit', "#{fetch(:tmp_dir)}/monit.conf", @role
+
+ mv_command = "mv #{fetch(:tmp_dir)}/monit.conf #{fetch(:sidekiq_monit_conf_dir)}/#{sidekiq_service_name}.conf"
+
+ # Try execute in case the deploy user doesn't have sudo to mv
+ begin
+ execute mv_command
+ rescue
+ sudo mv_command
+ end
+
+ sudo "#{fetch(:monit_bin)} reload"
end
end
desc 'Monitor Sidekiq monit-service'
task :monitor do
on roles(fetch(:sidekiq_role)) do
fetch(:sidekiq_processes).times do |idx|
- sudo "#{fetch(:monit_bin)} monitor #{sidekiq_service_name(idx)}"
+ begin
+ sudo "#{fetch(:monit_bin)} monitor #{sidekiq_service_name(idx)}"
+ rescue
+ invoke 'sidekiq:monit:config'
+ sudo "#{fetch(:monit_bin)} monitor #{sidekiq_service_name(idx)}"
+ end
end
end
end
desc 'Unmonitor Sidekiq monit-service'
task :unmonitor do
on roles(fetch(:sidekiq_role)) do
fetch(:sidekiq_processes).times do |idx|
- sudo "#{fetch(:monit_bin)} unmonitor #{sidekiq_service_name(idx)}"
+ begin
+ sudo "#{fetch(:monit_bin)} unmonitor #{sidekiq_service_name(idx)}"
+ rescue
+ # no worries here
+ end
end
end
end
desc 'Start Sidekiq monit-service'