Class: ActiveJob::Temporal::Activities::RateLimitActivity

Inherits:
Temporalio::Activity::Definition
  • Object
show all
Defined in:
lib/activejob/temporal/activities/rate_limit_activity.rb

Overview

Activity wrapper around user-configured rate limiter I/O.

Instance Method Summary collapse

Instance Method Details

#execute(payload) ⇒ Object

Raises:



10
11
12
13
14
15
16
17
18
# File 'lib/activejob/temporal/activities/rate_limit_activity.rb', line 10

def execute(payload)
  rate_limits = payload[:rate_limits] || payload["rate_limits"]
  return 0.0 if Array(rate_limits).empty?

  limiter = ActiveJob::Temporal.config.rate_limiter
  raise ConfigurationError, "rate_limiter is required when rate limits are configured" unless limiter

  normalize_wait_time(call_limiter(limiter, rate_limits))
end