Configuración del engine Arrea.
Prioridad de configuración
Arrea como librería (de menor a mayor prioridad)
@default— Valores baseline compilados en este módulo. Siempre presentes.config :arrea, :engine, [...]en elconfig.exsdel proyecto consumidor — sobreescribe los defaults en tiempo de compilación a través del Application env de OTP.Arrea.Config.set/2en tiempo de ejecución — persiste en la sesión actual de la VM medianteApplication.put_env. Sobreescribe la config estática.- Opts pasadas directamente a las funciones (
execute/2,run/2, etc.) — prioridad máxima. Los llamadores deben comprobar opts antes de recurrir aConfig.get/2.
Nota sobre "config propia de Arrea"
Como librería Elixir/OTP, Arrea no puede tener ficheros de config propios
que tengan más prioridad que el proyecto consumidor — es el proyecto consumidor
quien siempre gana en la jerarquía de Application env. El @default de este
módulo es la única configuración "propia" de Arrea, y actúa como baseline.
Arrea como CLI (de menor a mayor prioridad)
@default— Valores baseline del binario.- Application env (si Arrea se usa en contexto mix).
arrea config set KEY VALUE— Config de sesión. Persiste mientras vive el proceso del binario. Usa el mismo mecanismo queConfig.set/2.- Args de CLI — Máxima prioridad. Se aplican solo a la invocación actual.
Ejemplo en config.exs
Acepta tanto keyword list como mapa:
# Keyword list (estilo estándar Elixir)
config :arrea, :engine,
max_workers: 200,
circuit_breaker_threshold: 10
# Mapa equivalente
config :arrea, :engine, %{max_workers: 200, circuit_breaker_threshold: 10}Uso en tiempo de ejecución
Arrea.Config.get(:max_workers) # => 100 (default)
Arrea.Config.set(:max_workers, 50) # persiste en la sesión actual
Arrea.Config.get(:max_workers) # => 50
Summary
Functions
Obtiene todos los valores de configuración del engine, fusionando los defaults con los valores del Application env.
Obtiene un valor de configuración del engine.
Establece un valor de configuración en memoria para la sesión actual.
Functions
@spec all() :: map()
Obtiene todos los valores de configuración del engine, fusionando los defaults con los valores del Application env.
El resultado refleja la configuración efectiva actual, incluyendo
sobreescrituras de config.exs y cambios aplicados con Config.set/2.
Obtiene un valor de configuración del engine.
Resolución (de menor a mayor prioridad):
@defaultdel módulo- Application env (
config.exsdel consumidor oConfig.set/2en runtime)
Los opts de función tienen prioridad sobre este valor y deben comprobarse
primero en el llamador antes de recurrir a Config.get/2.
Ejemplos
iex> Arrea.Config.get(:max_workers)
100
iex> Arrea.Config.get(:nonexistent_key, :fallback)
:fallback
Establece un valor de configuración en memoria para la sesión actual.
Los cambios persisten mientras viva el proceso de la VM. Para cambios
permanentes, usar config.exs del proyecto consumidor.
En el contexto de CLI, equivale a arrea config set — los cambios
se mantienen mientras el proceso del binario esté activo, pero no
sobreviven a reinicios.
Ejemplos
iex> Arrea.Config.set(:max_workers, 50)
:ok
iex> Arrea.Config.get(:max_workers)
50