diff --git a/lib/sidekiq/api.rb b/lib/sidekiq/api.rb index a0d0d436..fe3eba41 100644 --- a/lib/sidekiq/api.rb +++ b/lib/sidekiq/api.rb @@ -713,7 +713,7 @@ module Sidekiq ## # Enumerates the set of Sidekiq processes which are actively working - # right now. Each process send a heartbeat to Redis every 5 seconds + # right now. Each process sends a heartbeat to Redis every 5 seconds # so this set should be relatively accurate, barring network partitions. # # Yields a Sidekiq::Process. diff --git a/lib/sidekiq/cli.rb b/lib/sidekiq/cli.rb index eb982187..8275e77d 100644 --- a/lib/sidekiq/cli.rb +++ b/lib/sidekiq/cli.rb @@ -56,8 +56,7 @@ module Sidekiq # touch the connection pool so it is created before we # fire startup and start multithreading. ver = Sidekiq.redis_info["redis_version"] - raise "You are using Redis v#{ver}, Sidekiq requires Redis v2.8.0 or greater" if ver < "2.8" - logger.warn "Sidekiq 6.0 requires Redis 4.0+, you are using Redis v#{ver}" if ver < "4" + raise "You are using Redis v#{ver}, Sidekiq requires Redis v4.0.0 or greater" if ver < "4" # Since the user can pass us a connection pool explicitly in the initializer, we # need to verify the size is large enough or else Sidekiq's performance is dramatically slowed. @@ -98,9 +97,13 @@ module Sidekiq rescue Interrupt logger.info "Shutting down" launcher.stop - # Explicitly exit so busy Processor threads can't block - # process shutdown. logger.info "Bye!" + + # Explicitly exit so busy Processor threads won't block process shutdown. + # + # NB: slow at_exit handlers will prevent a timely exit if they take + # a while to run. If Sidekiq is getting here but the process isn't exiting, + # use the TTIN signal to determine where things are stuck. exit(0) end end @@ -266,7 +269,7 @@ module Sidekiq if !File.exist?(options[:require]) || (File.directory?(options[:require]) && !File.exist?("#{options[:require]}/config/application.rb")) logger.info "==================================================================" - logger.info " Please point sidekiq to a Rails 4/5 application or a Ruby file " + logger.info " Please point Sidekiq to a Rails application or a Ruby file " logger.info " to load your worker classes with -r [DIR|FILE]." logger.info "==================================================================" logger.info @parser @@ -287,7 +290,7 @@ module Sidekiq end o.on "-d", "--daemon", "Daemonize process" do |arg| - puts "WARNING: Daemonization mode was removed in Sidekiq 6.0, please use a proper process supervisor to start and manage your services" + puts "ERROR: Daemonization mode was removed in Sidekiq 6.0, please use a proper process supervisor to start and manage your services" end o.on "-e", "--environment ENV", "Application environment" do |arg| @@ -320,11 +323,11 @@ module Sidekiq end o.on "-L", "--logfile PATH", "path to writable logfile" do |arg| - puts "WARNING: Logfile redirection was removed in Sidekiq 6.0, Sidekiq will only log to STDOUT" + puts "ERROR: Logfile redirection was removed in Sidekiq 6.0, Sidekiq will only log to STDOUT" end o.on "-P", "--pidfile PATH", "path to pidfile" do |arg| - puts "WARNING: PID file creation was removed in Sidekiq 6.0, please use a proper process supervisor to start and manage your services" + puts "ERROR: PID file creation was removed in Sidekiq 6.0, please use a proper process supervisor to start and manage your services" end o.on "-V", "--version", "Print version and exit" do |arg| @@ -360,12 +363,6 @@ module Sidekiq opts = opts.merge(opts.delete(environment.to_sym) || {}) parse_queues(opts, opts.delete(:queues) || []) - ns = opts.delete(:namespace) - if ns - # logger hasn't been initialized yet, puts is all we have. - puts("namespace should be set in your ruby initializer, is ignored in config file") - puts("config.redis = { :url => ..., :namespace => '#{ns}' }") - end opts end diff --git a/lib/sidekiq/launcher.rb b/lib/sidekiq/launcher.rb index 7ed28f69..2eb3eeee 100644 --- a/lib/sidekiq/launcher.rb +++ b/lib/sidekiq/launcher.rb @@ -5,10 +5,7 @@ require "sidekiq/fetch" require "sidekiq/scheduled" module Sidekiq - # The Launcher is a very simple Actor whose job is to - # start, monitor and stop the core Actors in Sidekiq. - # If any of these actors die, the Sidekiq process exits - # immediately. + # The Launcher starts the Manager and Poller threads and provides the process heartbeat. class Launcher include Util diff --git a/lib/sidekiq/redis_connection.rb b/lib/sidekiq/redis_connection.rb index 8742b1a3..23926184 100644 --- a/lib/sidekiq/redis_connection.rb +++ b/lib/sidekiq/redis_connection.rb @@ -124,8 +124,8 @@ module Sidekiq REDIS_PROVIDER should be set to the name of the variable which contains the Redis URL, not a URL itself. Platforms like Heroku will sell addons that publish a *_URL variable. You need to tell Sidekiq with REDIS_PROVIDER, e.g.: - REDIS_PROVIDER=REDISTOGO_URL REDISTOGO_URL=redis://somehost.example.com:6379/4 + REDIS_PROVIDER=REDISTOGO_URL EOM end diff --git a/lib/sidekiq/worker.rb b/lib/sidekiq/worker.rb index 0b8d1353..aa06f298 100644 --- a/lib/sidekiq/worker.rb +++ b/lib/sidekiq/worker.rb @@ -39,8 +39,9 @@ module Sidekiq # Allows customization for this type of Worker. # Legal options: # - # retry - enable the RetryJobs middleware for this Worker, *true* to use the default - # or *Integer* count + # queue - name of queue to use for this job type, default *default* + # retry - enable retries for this Worker in case of error during execution, + # *true* to use the default or *Integer* count # backtrace - whether to save any error backtrace in the retry payload to display in web UI, # can be true, false or an integer number of lines to save, default *false* #