Class: RuboCop::Cop::SidekiqPro::ReliabilityNotEnabled

Inherits:
Base
  • Object
show all
Defined in:
lib/rubocop/cop/sidekiq_pro/reliability_not_enabled.rb

Overview

Checks that Sidekiq Pro reliability features are enabled.

Sidekiq Pro provides super_fetch! and reliable_push! for improved job reliability. These should be enabled in production.

Examples:

# bad - reliability features not enabled
Sidekiq.configure_server do |config|
  config.redis = { url: ENV['REDIS_URL'] }
end

# good - reliability features enabled
Sidekiq.configure_server do |config|
  config.redis = { url: ENV['REDIS_URL'] }
  config.super_fetch!
  config.reliable_push!
end

Constant Summary collapse

MSG_SUPER_FETCH =
'Consider enabling `super_fetch!` for reliable job fetching.'
MSG_RELIABLE_PUSH =
'Consider enabling `reliable_push!` for reliable job pushing.'

Instance Method Summary collapse

Methods inherited from Base

#batch_description_set?, #batch_jobs_block?, #batch_new?, #batch_on_callback?

Methods included from Sidekiq::Language

#active_job_class?, #perform_call?, #sidekiq_include?, #sidekiq_options_call?

Instance Method Details

#configure_server_block?(node) ⇒ Object



29
30
31
32
33
34
35
# File 'lib/rubocop/cop/sidekiq_pro/reliability_not_enabled.rb', line 29

def_node_matcher :configure_server_block?, <<~PATTERN
  (block
    (send (const {nil? cbase} :Sidekiq) :configure_server)
    (args (arg $_))
    $_
  )
PATTERN

#on_block(node) ⇒ Object Also known as: on_numblock



37
38
39
40
41
42
43
# File 'lib/rubocop/cop/sidekiq_pro/reliability_not_enabled.rb', line 37

def on_block(node)
  configure_server_block?(node) do |config_var, body|
    return unless body

    check_reliability_features(node, config_var, body)
  end
end