Module: Sidekiq::Rescue

Extended by:
Forwardable
Defined in:
lib/sidekiq/rescue.rb,
lib/sidekiq/rescue/dsl.rb,
lib/sidekiq/rescue/config.rb,
lib/sidekiq/rescue/version.rb,
lib/sidekiq/rescue/rspec/matchers.rb,
lib/sidekiq/rescue/server_middleware.rb

Overview

Sidekiq::Rescue is a Sidekiq plugin which allows you to easily handle exceptions thrown by your jobs.

To use Sidekiq::Rescue, you need to include Sidekiq::Rescue::Dsl module in your job class and use the sidekiq_rescue class method to define exception handlers.

class MyJob
  include Sidekiq::Job
  include Sidekiq::Rescue::Dsl

  sidekiq_rescue NetworkError, delay: 60, limit: 10

  def perform
    # ...
  end
end

Also it needs to be registered in Sidekiq server middleware chain:

Sidekiq.configure_server do |config|
  config.server_middleware do |chain|
    chain.add Sidekiq::Rescue::ServerMiddleware
    ...

Defined Under Namespace

Modules: Dsl, RSpec Classes: Config, ServerMiddleware

Constant Summary collapse

DELAY_STRATEGIES =
%i[polynomially_longer exponentially_longer].freeze
DSL =
Deprecated.

Alias for Dsl; TODO: remove in 1.0.0

See Also:

Dsl
VERSION =
"0.7.0"

Class Attribute Summary collapse

Class Method Summary collapse

Class Attribute Details

.configSidekiq::Rescue::Config (readonly)

Returns The configuration object.

Returns:



37
# File 'lib/sidekiq/rescue.rb', line 37

def_delegators :config, :logger

Class Method Details

.configure {|config| ... } ⇒ void

This method returns an undefined value.

Configures Sidekiq::Rescue

Examples:

Sidekiq::Rescue.configure do |config|
  config.delay = 10
  config.limit = 5
  config.logger = Logger.new($stdout)
end

Yield Parameters:



51
52
53
54
55
56
57
# File 'lib/sidekiq/rescue.rb', line 51

def configure
  @mutex.synchronize do
    config = @config.dup
    yield(config)
    @config = config.freeze
  end
end