class Sidekiq::RateLimiter::Rate
Public Class Methods
new(message)
click to toggle source
# File lib/sidekiq-rate-limiter/fetch.rb, line 48 def initialize(message) @message = message end
Public Instance Methods
interval()
click to toggle source
# File lib/sidekiq-rate-limiter/fetch.rb, line 56 def interval rate['interval'] || rate['period'] end
limit()
click to toggle source
# File lib/sidekiq-rate-limiter/fetch.rb, line 52 def limit rate['limit'] || rate['threshold'] end
name()
click to toggle source
# File lib/sidekiq-rate-limiter/fetch.rb, line 60 def name rate['name'] || DEFAULT_LIMIT_NAME end
valid?()
click to toggle source
# File lib/sidekiq-rate-limiter/fetch.rb, line 64 def valid? !!(limit && interval) end
Private Instance Methods
client_rate()
click to toggle source
# File lib/sidekiq-rate-limiter/fetch.rb, line 82 def client_rate @client_rate ||= @message['rate'] || @message['throttle'] || {} end
rate()
click to toggle source
# File lib/sidekiq-rate-limiter/fetch.rb, line 70 def rate use_server_rate? ? server_rate : client_rate end
server_rate()
click to toggle source
# File lib/sidekiq-rate-limiter/fetch.rb, line 86 def server_rate return @server_rate if @server_rate worker_class = @message['class'] options = Object.const_get(worker_class).get_sidekiq_options rescue {} server_rate = options['rate'] || options['throttle'] || {} @server_rate = server_rate.map { |k, v| [k.to_s, v] }.to_h end
use_server_rate?()
click to toggle source
# File lib/sidekiq-rate-limiter/fetch.rb, line 74 def use_server_rate? server_rate['limit'] && server_rate['limit'].respond_to?(:call) || server_rate['threshold'] && server_rate['threshold'].respond_to?(:call) || server_rate['period'] && server_rate['period'].respond_to?(:call) || server_rate['interval'] && server_rate['interval'].respond_to?(:call) || server_rate['name'] && server_rate['name'].respond_to?(:call) end