108 lines
3.5 KiB
Python
Raw Normal View History

2025-03-17 14:58:05 +08:00
# config/settings.py
"""
应用全局配置文件
包含应用基本信息服务配置数据库配置日志配置等
"""
import os
from dataclasses import dataclass
from typing import List, Dict, Any
# 应用基本信息
class AppConfig:
"""应用基本配置"""
NAME = "天风任务模块" # 应用名称
VERSION = "1.0.0" # 应用版本号
DEBUG = os.environ.get("DEBUG", "True").lower() == "true" # 调试模式开关,可通过环境变量设置
# 服务配置
class ServerConfig:
"""服务器配置"""
HOST = os.environ.get("HOST", "0.0.0.0") # 服务监听地址
PORT = int(os.environ.get("PORT", 8000)) # 服务监听端口
RELOAD = AppConfig.DEBUG # 是否启用热重载默认与DEBUG模式一致
# API配置
class ApiConfig:
"""API配置"""
PREFIX = "/api/v1"
TITLE = "天风任务模块API" # API文档标题
DESCRIPTION = "AMR调度系统中天风任务模块的API接口" # API文档描述
VERSION = AppConfig.VERSION # API版本号
# CORS配置跨域资源共享
class CorsConfig:
"""CORS配置"""
ALLOW_ORIGINS = ["*"] # 允许的源,* 表示允许所有源
ALLOW_CREDENTIALS = True # 是否允许携带凭证
ALLOW_METHODS = ["*"] # 允许的HTTP方法
ALLOW_HEADERS = ["*"] # 允许的HTTP头
# 数据库配置
class DatabaseConfig:
"""数据库配置"""
HOST = os.environ.get("DB_HOST", "localhost") # 数据库主机
PORT = int(os.environ.get("DB_PORT", 3306)) # 数据库端口
USER = os.environ.get("DB_USER", "root") # 数据库用户名
PASSWORD = os.environ.get("DB_PASSWORD", "password") # 数据库密码
DATABASE = os.environ.get("DB_NAME", "tianfeng_task") # 数据库名
CHARSET = "utf8mb4" # 字符集
@classmethod
def as_dict(cls) -> Dict[str, Any]:
"""返回数据库配置字典"""
return {
"host": cls.HOST,
"port": cls.PORT,
"user": cls.USER,
"password": cls.PASSWORD,
"database": cls.DATABASE,
"charset": cls.CHARSET
}
# 日志配置
class LogConfig:
"""日志配置"""
LEVEL = os.environ.get("LOG_LEVEL", "INFO") # 日志级别
FORMAT = "%(asctime)s - %(name)s - %(levelname)s - %(message)s" # 日志格式
FILE = os.environ.get("LOG_FILE", "logs/tianfeng_task.log") # 日志文件路径
@classmethod
def as_dict(cls) -> Dict[str, Any]:
"""返回日志配置字典"""
return {
"level": cls.LEVEL,
"format": cls.FORMAT,
"file": cls.FILE
}
# 组件配置
class ComponentConfig:
"""组件配置"""
PACKAGES = ["components"] # 组件包路径
# 响应码配置
class ResponseCode:
"""响应码配置"""
SUCCESS = 200 # 成功
BAD_REQUEST = 400 # 请求错误
UNAUTHORIZED = 401 # 未授权
FORBIDDEN = 403 # 禁止访问
NOT_FOUND = 404 # 资源不存在
SERVER_ERROR = 500 # 服务器错误
# 任务状态配置
class TaskStatus:
"""任务状态配置"""
PENDING = "待执行" # 待执行
RUNNING = "执行中" # 执行中
COMPLETED = "已完成" # 已完成
FAILED = "执行失败" # 执行失败
CANCELED = "已取消" # 已取消
PAUSED = "暂停中" # 暂停中
WAITING = "等待中" # 等待中
# 导出日志配置字典,供其他模块使用
LOG_CONFIG = LogConfig.as_dict()
# 导出组件包列表,供组件注册使用
COMPONENT_PACKAGES = ComponentConfig.PACKAGES