Skip to content

FQBase - 配置指南

阅读路径

🟡 运维:README → configuration → troubleshooting → best-practices

初始化与生命周期

初始化

python
from FQBase.Infrastructure import init_logging
from FQBase.Config import load_env

load_env()
init_logging(config_path="logging.yaml")

生命周期

阶段方法说明
加载环境load_env()加载 .env 文件
初始化日志init_logging()配置日志系统
创建缓存create_cache()初始化缓存适配器
连接数据库get_database()建立 MongoDB 连接

配置选项

核心选项

MongoDB 配置

选项类型默认值描述
MONGODB_URIstrmongodb://localhost:27017MongoDB 连接 URI
MONGODB_DATABASEstrquantaxis默认数据库名
MONGODB_MAX_POOL_SIZEint50最大连接池大小
MONGODB_MIN_POOL_SIZEint10最小连接池大小

Redis 缓存配置

选项类型默认值描述
REDIS_HOSTstrlocalhostRedis 主机
REDIS_PORTint6379Redis 端口
REDIS_PASSWORDstrNoneRedis 密码
REDIS_DBint0Redis 数据库编号
REDIS_MAX_CONNECTIONSint50最大连接数

高级选项

路径配置

选项类型默认值描述
FQUANT_ROOT_PATHstr~/.fqdataFQuant 根目录
FQUANT_FQDATA_PATHstr~/.fqdata数据目录
FQUANT_INDEX_PATHstrNone索引目录
FQUANT_START_DATEstr2021-01-01数据起始日期

日志配置

选项类型默认值描述
LOG_LEVELstrINFO日志级别
LOG_PATHstr~/.fqdata/log日志目录

环境变量

变量类型默认值描述
FQUANT_ROOT_PATHstr~/.fqdata根路径
FQUANT_FQDATA_PATHstr~/.fqdata数据路径
FQUANT_INDEX_PATHstrNone索引路径
FQUANT_START_DATEstr2021-01-01起始日期
MONGODB_URIstrmongodb://localhost:27017MongoDB URI
REDIS_HOSTstrlocalhostRedis 主机
REDIS_PORTint6379Redis 端口
REDIS_PASSWORDstrNoneRedis 密码
CHROME_DRIVER_PATHstr/usr/local/bin/chromedriverChromeDriver 路径

配置优先级

  1. 环境变量 → 2. .env 文件 → 3. config.ini → 4. 默认值

配置示例

最小配置

bash
# .env
MONGODB_URI=mongodb://localhost:27017

完整配置

bash
# .env
MONGODB_URI=mongodb://user:pass@host:27017
REDIS_HOST=redis.example.com
REDIS_PORT=6379
REDIS_PASSWORD=secret
FQUANT_ROOT_PATH=/data/fquant
LOG_LEVEL=DEBUG
yaml
# logging.yaml
version: 1
formatters:
  default:
    format: '%(asctime)s - %(name)s - %(levelname)s - %(message)s'
handlers:
  console:
    class: logging.StreamHandler
  file:
    class: logging.handlers.RotatingFileHandler
    filename: /data/fquant/logs/app.log
root:
  level: INFO
  handlers: [console, file]

动态配置

更新缓存配置

python
from FQBase.Config import CacheConfig, set_cache_config

new_config = CacheConfig(
    cache_type="redis",
    redis_host="new-host",
    redis_port=6379
)
set_cache_config(new_config)

监听配置变更

python
from FQBase.Config import ConfigWatcher, watch_config

def on_change(key, value):
    logger.info(f"Config changed: {key} = {value}")

watcher = watch_config(["MONGODB_URI", "REDIS_HOST"])
watcher.add_callback(on_change)

相关文档