class Mosquito::Api::ConcurrencyConfig

Overview

Provides read/write access to the remotely stored concurrency limits used by RemoteConfigDequeueAdapter.

Supports both global limits (shared by all overseers) and per-overseer limits for asymmetric hardware configurations.

config = Mosquito::Api::ConcurrencyConfig.instance
config.limits                                  # => global limits
config.limits(overseer_id: "gpu-worker-1")     # => per-overseer limits
config.update({"queue_a" => 5})                # write global
config.update({"queue_a" => 1}, overseer_id: "gpu-worker-1")  # write per-overseer
config.clear                                   # remove global limits
config.clear(overseer_id: "gpu-worker-1")      # remove per-overseer limits

Defined in:

mosquito/api/concurrency_config.cr

Constructors

Instance Method Summary

Constructor Detail

def self.instance : self #

Instance Method Detail

def clear(overseer_id : String) : Nil #

Removes stored concurrency limits for a specific overseer.


def clear : Nil #

Removes all globally stored concurrency limits.


def limits(overseer_id : String) : Hash(String, Int32) #

Returns the concurrency limits stored for a specific overseer.


def limits : Hash(String, Int32) #

Returns the global concurrency limits stored in the backend.


def update(new_limits : Hash(String, Int32), overseer_id : String) : Nil #

Overwrites the stored concurrency limits for a specific overseer.


def update(new_limits : Hash(String, Int32)) : Nil #

Overwrites the global stored concurrency limits with new_limits.