Module: ActiveJob::Temporal::RateLimitOptions
- Extended by:
- ActiveSupport::Concern
- Defined in:
- lib/activejob/temporal/rate_limit_options.rb
Overview
Provides per-job rate limit metadata via the rate_limit class method.
Constant Summary collapse
- PERIOD_SECONDS =
{ second: 1.0, minute: 60.0, hour: 3600.0 }.freeze
Class Method Summary collapse
Class Method Details
.normalize(limit, per:, key: nil) ⇒ Object
19 20 21 22 23 24 25 |
# File 'lib/activejob/temporal/rate_limit_options.rb', line 19 def self.normalize(limit, per:, key: nil) normalized_limit = normalize_limit(limit) normalized_interval = normalize_interval(per) normalized = { limit: normalized_limit, interval: normalized_interval } normalized[:key] = normalize_key(key) if key normalized end |
.normalize_hash(value) ⇒ Object
27 28 29 30 31 32 33 34 35 36 |
# File 'lib/activejob/temporal/rate_limit_options.rb', line 27 def self.normalize_hash(value) raise ArgumentError, "rate limit must be a Hash" unless value.is_a?(Hash) limit = value[:limit] || value["limit"] interval = value[:interval] || value["interval"] per = value[:per] || value["per"] || interval key = value[:key] || value["key"] normalize(limit, per: per, key: key) end |