From 4b2d75c7ef2477971964be8184336de92d6665e3 Mon Sep 17 00:00:00 2001 From: freedakgmail Date: Wed, 22 Jul 2026 07:33:43 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20=E4=BF=AE=E5=A4=8D=20sim=5Ftrade/smart?= =?UTF-8?q?=5Ftrade=20=E6=9C=AA=E5=AF=BC=E5=85=A5=20put=5Fdb=20=E5=AF=BC?= =?UTF-8?q?=E8=87=B4=20NameError=20=E5=92=8C=E8=BF=9E=E6=8E=A5=E6=B3=84?= =?UTF-8?q?=E6=BC=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - sim_trade.py: 导入 put_db(之前使用了但未导入,每次 finally 都会 NameError) - smart_trade.py: 同上,9处 put_db 调用因未导入而失效 - sim_trade.py: trigger_trade 智能引擎异常时 conn 泄漏,改用 finally 确保归还 --- stock-html/routes/sim_trade.py | 13 ++++++++----- stock-html/routes/smart_trade.py | 2 +- 2 files changed, 9 insertions(+), 6 deletions(-) diff --git a/stock-html/routes/sim_trade.py b/stock-html/routes/sim_trade.py index 028691e..e0f981e 100644 --- a/stock-html/routes/sim_trade.py +++ b/stock-html/routes/sim_trade.py @@ -4,7 +4,7 @@ """ from flask import Blueprint, request, jsonify from datetime import datetime, date, time -from db import get_db, login_required, get_current_user_id +from db import get_db, put_db, login_required, get_current_user_id from psycopg2.extras import RealDictCursor bp = Blueprint('sim_trade', __name__, url_prefix='/api/sim') @@ -623,12 +623,12 @@ def trigger_trade(): try: # 优先使用智能引擎 + smart_conn = None try: from services.smart_trade_engine import execute_smart_trade - conn = get_db() - if conn: - result = execute_smart_trade(conn, user_id, scan_date=None) - put_db(conn) + smart_conn = get_db() + if smart_conn: + result = execute_smart_trade(smart_conn, user_id, scan_date=None) if result.get('success'): results = result.get('results', []) buy_count = len([r for r in results if r['type'] == 'buy']) @@ -641,6 +641,9 @@ def trigger_trade(): }) except Exception as e: print(f"[trigger_trade] 智能引擎异常,降级: {e}") + finally: + if smart_conn: + put_db(smart_conn) # 降级: 使用旧引擎 from services.scheduler import execute_auto_trade_for_user diff --git a/stock-html/routes/smart_trade.py b/stock-html/routes/smart_trade.py index 0c74b18..30ce411 100644 --- a/stock-html/routes/smart_trade.py +++ b/stock-html/routes/smart_trade.py @@ -4,7 +4,7 @@ """ from flask import Blueprint, request, jsonify from datetime import date -from db import get_db, login_required, get_current_user_id +from db import get_db, put_db, login_required, get_current_user_id from psycopg2.extras import RealDictCursor bp = Blueprint('smart_trade', __name__, url_prefix='/api/smart')