Class: Hatchet::Features::RateLimits

Inherits:
Object
  • Object
show all
Defined in:
lib/hatchet/features/rate_limits.rb

Overview

Rate Limits client for managing rate limits within Hatchet

This class provides a high-level interface for creating and updating rate limits using the gRPC Admin client.

Examples:

Setting a rate limit

rate_limits_client.put(key: "api-calls", limit: 100, duration: :SECOND)

Since:

  • 0.1.0

Instance Method Summary collapse

Constructor Details

#initialize(admin_grpc, config) ⇒ void

Initializes a new RateLimits client instance

Parameters:

Since:

  • 0.1.0



21
22
23
24
# File 'lib/hatchet/features/rate_limits.rb', line 21

def initialize(admin_grpc, config)
  @admin_grpc = admin_grpc
  @config = config
end

Instance Method Details

#put(key:, limit:, duration: :SECOND) ⇒ void

This method returns an undefined value.

Put a rate limit for a given key

Examples:

rate_limits_client.put(key: "api-calls", limit: 100, duration: :SECOND)

Parameters:

  • key (String)

    The key to set the rate limit for

  • limit (Integer)

    The rate limit to set

  • duration (Symbol) (defaults to: :SECOND)

    The duration of the rate limit (:SECOND, :MINUTE, :HOUR)

Raises:

  • (GRPC::BadStatus)

    If the gRPC request fails

Since:

  • 0.1.0



35
36
37
# File 'lib/hatchet/features/rate_limits.rb', line 35

def put(key:, limit:, duration: :SECOND)
  @admin_grpc.put_rate_limit(key: key, limit: limit, duration: duration)
end