Skip to content

Instantly share code, notes, and snippets.

@kcdragon
Created August 27, 2014 21:22
Show Gist options
  • Save kcdragon/48a0b3edcd617b01b7c8 to your computer and use it in GitHub Desktop.
Save kcdragon/48a0b3edcd617b01b7c8 to your computer and use it in GitHub Desktop.
Send HipChat message if there are multiple Sidekiq processes running
namespace :sidekiq do
detect_duplicate_processes = ->(context, server) do
number_of_sidekiq_processes = context.capture('ps aux | grep "[s]idekiq" | wc -l').to_i
rails_env = context.fetch(:rails_env, nil)
hipchat_token = context.fetch(:hipchat_token, nil)
hipchat_room_name = context.fetch(:hipchat_room_name, nil)
client = HipChat::Client.new(hipchat_token, {})
is = number_of_sidekiq_processes == 1 ? 'is' : 'are'
process = number_of_sidekiq_processes == 1 ? 'process' : 'processes'
client[hipchat_room_name].send(
'Deploy',
"#{rails_env}-#{server}: there #{is} #{number_of_sidekiq_processes} Sidekiq #{process} running.",
notify: true
)
end
task :detect_duplicate_processes_1, roles: :app_1 do
detect_duplicate_processes.(self, 'app01')
end
task :detect_duplicate_processes_2, roles: :app_2 do
detect_duplicate_processes.(self, 'app02')
end
task :detect_duplicate_processes do; end
end
after 'deploy:update', 'sidekiq:detect_duplicate_processes'
after 'sidekiq:detect_duplicate_processes', 'sidekiq:detect_duplicate_processes_1'
after 'sidekiq:detect_duplicate_processes', 'sidekiq:detect_duplicate_processes_2'
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment