mirror of
https://github.com/mperham/sidekiq.git
synced 2022-11-09 13:52:34 -05:00
Better usage text for sidekiqctl
This commit is contained in:
parent
f69d159ea0
commit
136af0b5e2
3 changed files with 18 additions and 15 deletions
|
@ -3,6 +3,7 @@ HEAD
|
|||
|
||||
- Log Sidekiq Pro's Batch ID if available [#2076]
|
||||
- Refactor Processor Redis usage to avoid redis/redis-rb#490 [#]
|
||||
- Add better usage text for `sidekiqctl`.
|
||||
|
||||
|
||||
3.3.0
|
||||
|
|
|
@ -3,23 +3,29 @@
|
|||
require 'fileutils'
|
||||
|
||||
class Sidekiqctl
|
||||
DEFAULT_TIMEOUT = 10
|
||||
DEFAULT_KILL_TIMEOUT = 10
|
||||
|
||||
attr_reader :stage, :pidfile, :timeout
|
||||
attr_reader :stage, :pidfile, :kill_timeout
|
||||
|
||||
def self.print_usage
|
||||
puts "#{File.basename($0)} - stop a Sidekiq process from the command line."
|
||||
puts
|
||||
puts "Usage: #{File.basename($0)} <command> <pidfile> <timeout>"
|
||||
puts " where <command> is either 'quiet', 'stop' or 'shutdown'"
|
||||
puts "Usage: #{File.basename($0)} <command> <pidfile> <kill_timeout>"
|
||||
puts " where <command> is either 'quiet' or 'stop'"
|
||||
puts " <pidfile> is path to a pidfile"
|
||||
puts " <timeout> is number of seconds to wait till Sidekiq exits (default: #{Sidekiqctl::DEFAULT_TIMEOUT})"
|
||||
puts " <kill_timeout> is number of seconds to wait until Sidekiq exits"
|
||||
puts " (default: #{Sidekiqctl::DEFAULT_KILL_TIMEOUT}), after which Sidekiq will be KILL'd"
|
||||
puts
|
||||
puts "Be sure to set the kill_timeout LONGER than Sidekiq's -t timeout. If you want"
|
||||
puts "to wait 60 seconds for jobs to finish, use `sidekiq -t 60` and `sidekiqctl stop"
|
||||
puts " path_to_pidfile 61`"
|
||||
puts
|
||||
end
|
||||
|
||||
def initialize(stage, pidfile, timeout)
|
||||
@stage = stage
|
||||
@pidfile = pidfile
|
||||
@timeout = timeout
|
||||
@kill_timeout = timeout
|
||||
|
||||
done('No pidfile given', :error) if !pidfile
|
||||
done("Pidfile #{pidfile} does not exist", :warn) if !File.exist?(pidfile)
|
||||
|
@ -30,7 +36,7 @@ class Sidekiqctl
|
|||
begin
|
||||
send(stage)
|
||||
rescue NoMethodError
|
||||
done 'Invalid control command', :error
|
||||
done "Invalid command: #{stage}", :error
|
||||
end
|
||||
end
|
||||
|
||||
|
@ -59,7 +65,7 @@ class Sidekiqctl
|
|||
|
||||
def stop
|
||||
`kill -TERM #{pid}`
|
||||
timeout.times do
|
||||
kill_timeout.times do
|
||||
begin
|
||||
Process.getpgid(pid)
|
||||
rescue Errno::ESRCH
|
||||
|
@ -72,11 +78,7 @@ class Sidekiqctl
|
|||
FileUtils.rm_f pidfile
|
||||
done 'Sidekiq shut down forcefully.'
|
||||
end
|
||||
|
||||
def shutdown
|
||||
quiet
|
||||
stop
|
||||
end
|
||||
alias_method :shutdown, :stop
|
||||
end
|
||||
|
||||
if ARGV.length < 2
|
||||
|
@ -85,7 +87,7 @@ else
|
|||
stage = ARGV[0]
|
||||
pidfile = ARGV[1]
|
||||
timeout = ARGV[2].to_i
|
||||
timeout = Sidekiqctl::DEFAULT_TIMEOUT if timeout == 0
|
||||
timeout = Sidekiqctl::DEFAULT_KILL_TIMEOUT if timeout == 0
|
||||
|
||||
Sidekiqctl.new(stage, pidfile, timeout)
|
||||
end
|
||||
|
|
|
@ -48,7 +48,7 @@ module Sidekiq
|
|||
|
||||
@done = true
|
||||
|
||||
logger.info { "Shutting down #{@ready.size} quiet workers" }
|
||||
logger.info { "Terminating #{@ready.size} quiet workers" }
|
||||
@ready.each { |x| x.terminate if x.alive? }
|
||||
@ready.clear
|
||||
|
||||
|
|
Loading…
Add table
Reference in a new issue