git_plugin = self
namespace :puma do
namespace :workers do desc 'Add a worker' task :count do on roles(fetch(:puma_role)) do |role| git_plugin.puma_switch_user(role) do #TODO # cleanup # add host name/ip puma_pid = capture("cat #{fetch(:puma_pid)}") workers_count = capture("ps ax | grep -c 'puma: cluster worker [0-9]: #{puma_pid}'").to_i log "Workers count : #{workers_count}" end end end # TODO # Add/remove workers to specific host/s # Define # of workers to add/remove # Refactor desc 'Worker++' task :more do on roles(fetch(:puma_role)) do |role| git_plugin.puma_switch_user(role) do puma_pid = capture("cat #{fetch(:puma_pid)}") execute(:kill, "-TTIN #{puma_pid}") end end end desc 'Worker--' task :less do on roles(fetch(:puma_role)) do |role| git_plugin.puma_switch_user(role) do puma_pid = capture("cat #{fetch(:puma_pid)}") execute(:kill, "-TTOU #{puma_pid}") end end end end
end