1
0
Fork 0
mirror of https://github.com/mperham/sidekiq.git synced 2022-11-09 13:52:34 -05:00

Allow absolute pid paths in Capistrano

Fix #1427
This commit is contained in:
Jimmy Bourassa 2014-01-11 12:30:08 -05:00
parent c95a6b12ea
commit 8e64985837

View file

@ -10,7 +10,7 @@ namespace :load do
set :sidekiq_cmd, ->{ }
set :sidekiqctl_cmd, ->{ }
# must be relative to Rails.root. If this changes, you'll need to manually
# If this changes, you'll need to manually
# stop the existing sidekiq process.
set :sidekiq_pid, ->{ "tmp/sidekiq.pid" }
@ -36,6 +36,14 @@ namespace :sidekiq do
end
end
def pid_full_path(pid_path)
if pid_path.start_with?("/")
pid_path
else
"#{current_path}/#{pid_path}"
end
end
task :add_default_hooks do
after 'deploy:starting', 'sidekiq:quiet'
after 'deploy:updated', 'sidekiq:stop'
@ -47,12 +55,12 @@ namespace :sidekiq do
task :quiet do
on roles fetch(:sidekiq_role) do
for_each_process do |pid_file, idx|
if test "[ -f #{current_path}/#{pid_file} ]"
if test "[ -f #{pid_full_path(pid_file)} ]"
within current_path do
if fetch(:sidekiqctl_cmd)
execute fetch(:sidekiqctl_cmd), 'quiet', "#{current_path}/#{pid_file}"
execute fetch(:sidekiqctl_cmd), 'quiet', "#{pid_full_path(pid_file)}"
else
execute :bundle, :exec, :sidekiqctl, 'quiet', "#{current_path}/#{pid_file}"
execute :bundle, :exec, :sidekiqctl, 'quiet', "#{pid_full_path(pid_file)}"
end
end
end
@ -64,12 +72,12 @@ namespace :sidekiq do
task :stop do
on roles fetch(:sidekiq_role) do
for_each_process do |pid_file, idx|
if test "[ -f #{current_path}/#{pid_file} ]"
if test "[ -f #{pid_full_path(pid_file)} ]"
within current_path do
if fetch(:sidekiqctl_cmd)
execute fetch(:sidekiqctl_cmd), 'stop', "#{current_path}/#{pid_file}", fetch(:sidekiq_timeout)
execute fetch(:sidekiqctl_cmd), 'stop', "#{pid_full_path(pid_file)}", fetch(:sidekiq_timeout)
else
execute :bundle, :exec, :sidekiqctl, 'stop', "#{current_path}/#{pid_file}", fetch(:sidekiq_timeout)
execute :bundle, :exec, :sidekiqctl, 'stop', "#{pid_full_path(pid_file)}", fetch(:sidekiq_timeout)
end
end
end
@ -84,9 +92,9 @@ namespace :sidekiq do
within current_path do
for_each_process do |pid_file, idx|
if fetch(:sidekiq_cmd)
execute fetch(:sidekiq_cmd), "-d -i #{idx} -P #{pid_file} #{fetch(:sidekiq_options)}"
execute fetch(:sidekiq_cmd), "-d -i #{idx} -P #{pid_full_path(pid_file)} #{fetch(:sidekiq_options)}"
else
execute :bundle, :exec, :sidekiq, "-d -i #{idx} -P #{pid_file} #{fetch(:sidekiq_options)}"
execute :bundle, :exec, :sidekiq, "-d -i #{idx} -P #{pid_full_path(pid_file)} #{fetch(:sidekiq_options)}"
end
end
end