Class: RuboCop::Cop::SidekiqEnt::LimiterNotReused
- Defined in:
- lib/rubocop/cop/sidekiq_ent/limiter_not_reused.rb
Overview
Checks that rate limiters are created as class constants for reuse.
Creating limiters inside the perform method causes Redis memory leaks because each instance creates new Redis keys. Limiters should be defined as class constants to be reused across job executions.
Constant Summary collapse
- MSG =
'Create rate limiters as class constants for reuse.'
Instance Method Summary collapse
- #on_send(node) ⇒ Object (also: #on_csend)
Methods inherited from Base
#limiter_creation?, #unique_for_option?, #unique_until_option?
Methods included from Sidekiq::Language
#active_job_class?, #perform_call?, #sidekiq_include?, #sidekiq_options_call?
Instance Method Details
#on_send(node) ⇒ Object Also known as: on_csend
46 47 48 49 50 51 52 53 |
# File 'lib/rubocop/cop/sidekiq_ent/limiter_not_reused.rb', line 46 def on_send(node) limiter_creation?(node) do |_method, name, _limit| return if inside_class_body_directly?(node) return if dynamic_limiter_name?(name) add_offense(node) end end |