LibOss.Config.Manager (lib_oss v0.3.0)
View Source统一的配置管理器,提供配置加载、缓存和运行时更新功能。
该模块负责:
- 从多个来源加载配置(应用配置、环境变量、运行时配置)
 - 配置缓存和更新
 - 配置变更通知
 - 环境特定配置处理
 
Summary
Functions
Returns a specification to start this module under a supervisor.
重新加载配置。
启动配置管理器。
启动配置管理器的便利函数(保持向后兼容)。
取消订阅配置变更通知。
Types
Functions
Returns a specification to start this module under a supervisor.
See Supervisor.
@spec get_config(atom(), config_key() | nil) :: any()
获取配置。
参数
module_name- 模块名称key- 配置键(可选)
返回值
- 配置值或完整配置
 
重新加载配置。
参数
module_name- 模块名称
返回值
:ok- 重新加载成功{:error, reason}- 重新加载失败
@spec start_link(keyword()) :: GenServer.on_start()
启动配置管理器。
参数
config- 包含以下键的配置关键字列表::otp_app- OTP应用名称:module_name- 模块名称:name- GenServer进程名称(可选)- 其他初始化选项
 
返回值
{:ok, pid}- 启动成功{:error, reason}- 启动失败
示例
# 在应用的supervision tree中使用
defmodule MyApp.Application do
  use Application
  def start(_type, _args) do
    children = [
      {LibOss.Config.Manager, [
        otp_app: :my_app,
        module_name: MyOss,
        name: MyOss.ConfigManager
      ]}
    ]
    Supervisor.start_link(children, strategy: :one_for_one)
  end
end
# 或者直接启动
config = [
  otp_app: :my_app,
  module_name: MyOss,
  name: MyOss.ConfigManager
]
{:ok, pid} = LibOss.Config.Manager.start_link(config)
  @spec start_link(atom(), atom(), keyword()) :: GenServer.on_start()
启动配置管理器的便利函数(保持向后兼容)。
参数
otp_app- OTP应用名称module_name- 模块名称opts- 启动选项
返回值
{:ok, pid}- 启动成功{:error, reason}- 启动失败
订阅配置变更通知。
参数
module_name- 模块名称subscriber- 订阅者进程
返回值
:ok- 订阅成功
取消订阅配置变更通知。
参数
module_name- 模块名称subscriber- 订阅者进程
返回值
:ok- 取消订阅成功
更新配置。
参数
module_name- 模块名称config- 新配置
返回值
:ok- 更新成功{:error, reason}- 更新失败