diff --git a/app_vx.py b/app_vx.py index a0a7fa7d..21c8c71c 100644 --- a/app_vx.py +++ b/app_vx.py @@ -81,8 +81,22 @@ from tencentcloud.common.profile.http_profile import HttpProfile from tencentcloud.sms.v20210111 import sms_client, models from tencentcloud.common.exception.tencent_cloud_sdk_exception import TencentCloudSDKException -engine = create_engine("mysql+pymysql://root:Zzl33818!@127.0.0.1:3306/stock", echo=False, pool_size=20, - max_overflow=50) +# ============ MySQL 连接配置(支持环境变量覆盖,方便多服务器部署) ============ +_MYSQL_HOST = os.environ.get('MYSQL_HOST', '127.0.0.1') +_MYSQL_PORT = os.environ.get('MYSQL_PORT', '3306') +_MYSQL_USER = os.environ.get('MYSQL_USER', 'root') +_MYSQL_PASSWORD = os.environ.get('MYSQL_PASSWORD', 'Zzl33818!') +_MYSQL_DATABASE = os.environ.get('MYSQL_DATABASE', 'stock') +_MYSQL_URL = f"mysql+pymysql://{_MYSQL_USER}:{_MYSQL_PASSWORD}@{_MYSQL_HOST}:{_MYSQL_PORT}/{_MYSQL_DATABASE}?charset=utf8mb4" +print(f"🗄️ MySQL 配置: {_MYSQL_HOST}:{_MYSQL_PORT}/{_MYSQL_DATABASE}") + +# ============ ClickHouse 连接配置(支持环境变量覆盖) ============ +_CLICKHOUSE_HOST = os.environ.get('CLICKHOUSE_HOST', '127.0.0.1') +_CLICKHOUSE_PORT = int(os.environ.get('CLICKHOUSE_PORT', 9000)) +_CLICKHOUSE_PASSWORD = os.environ.get('CLICKHOUSE_PASSWORD', 'Zzl33818!') +print(f"📊 ClickHouse 配置: {_CLICKHOUSE_HOST}:{_CLICKHOUSE_PORT}") + +engine = create_engine(_MYSQL_URL, echo=False, pool_size=20, max_overflow=50) logging.basicConfig(level=logging.INFO, format='%(asctime)s - %(name)s - %(levelname)s - %(message)s') logger = logging.getLogger(__name__) @@ -526,10 +540,10 @@ def _init_clickhouse_pool(): with _pool_lock: if clickhouse_pool is None: clickhouse_pool = ClickHouseConnectionPool( - host='127.0.0.1', - port=9000, + host=_CLICKHOUSE_HOST, + port=_CLICKHOUSE_PORT, user='default', - password='Zzl33818!', + password=_CLICKHOUSE_PASSWORD, database='stock', pool_size=5, # 核心连接数 max_overflow=20, # 溢出连接数,总共支持 25 并发 @@ -638,7 +652,7 @@ class TokenStore: user_tokens = TokenStore() app.config['SECRET_KEY'] = 'vf7891574233241' -app.config['SQLALCHEMY_DATABASE_URI'] = 'mysql+pymysql://root:Zzl33818!@127.0.0.1:3306/stock?charset=utf8mb4' +app.config['SQLALCHEMY_DATABASE_URI'] = _MYSQL_URL app.config['SQLALCHEMY_TRACK_MODIFICATIONS'] = False app.config['JSON_AS_ASCII'] = False