fix: 修复 market.py 北交所映射缺失和 analysis.py 3处连接泄漏
- market.py:488: 补充北交所(8/9开头)腾讯API代码映射 - analysis.py: ai_analyze_stream 获取数据 put_db 移到 finally,初始化 conn=None - analysis.py: ai_analyze_stream AI日志 put_db 移到 finally,初始化 _conn=None - analysis.py: ai_analyze 获取资金流向 put_db 移到 finally,初始化 conn=None
This commit is contained in:
@@ -340,6 +340,7 @@ def ai_analyze_stream(stock_code):
|
||||
stock_name = get_stock_name(stock_code) or stock_code
|
||||
|
||||
# 获取资金流向和技术信号
|
||||
conn = None
|
||||
try:
|
||||
conn = get_db()
|
||||
if conn:
|
||||
@@ -384,12 +385,14 @@ def ai_analyze_stream(stock_code):
|
||||
stock_data['indicators'] = scan_row['indicators'] or {}
|
||||
stock_data['triggered_count'] = scan_row['triggered_count'] or 0
|
||||
cur2.close()
|
||||
|
||||
put_db(conn)
|
||||
except Exception as e:
|
||||
print(f"获取数据失败: {e}")
|
||||
finally:
|
||||
if conn:
|
||||
put_db(conn)
|
||||
|
||||
# 记录AI调用日志
|
||||
_conn = None
|
||||
try:
|
||||
from flask import session as _sess
|
||||
_uid = _sess.get('user_id')
|
||||
@@ -400,9 +403,11 @@ def ai_analyze_stream(stock_code):
|
||||
_cur.execute("INSERT INTO ai_call_log (user_id, stock_code, stock_name) VALUES (%s, %s, %s)",
|
||||
(_uid, stock_code, stock_name))
|
||||
_conn.commit()
|
||||
put_db(_conn)
|
||||
except Exception:
|
||||
pass
|
||||
finally:
|
||||
if _conn:
|
||||
put_db(_conn)
|
||||
|
||||
# 流式调用AI
|
||||
for chunk in analyze_stock_stream(stock_code, stock_name, stock_data):
|
||||
@@ -447,6 +452,7 @@ def ai_analyze(stock_code):
|
||||
stock_name = get_stock_name(stock_code) or stock_code
|
||||
|
||||
# 获取近三日资金流向
|
||||
conn = None
|
||||
try:
|
||||
conn = get_db()
|
||||
if conn:
|
||||
@@ -468,9 +474,11 @@ def ai_analyze(stock_code):
|
||||
'super_pct': float(row[3]) if row[3] else 0,
|
||||
})
|
||||
stock_data['fund_flow_3days'] = fund_flow
|
||||
put_db(conn)
|
||||
except Exception as e:
|
||||
print(f"获取资金流向失败: {e}")
|
||||
finally:
|
||||
if conn:
|
||||
put_db(conn)
|
||||
|
||||
# 调用AI分析
|
||||
result = analyze_stock(stock_code, stock_name, stock_data)
|
||||
|
||||
@@ -485,7 +485,7 @@ def get_fundamental(stock_code):
|
||||
# 备用方案:先试腾讯API,再试akshare
|
||||
try:
|
||||
import requests as _rq
|
||||
_tc = ('sh' if stock_code.startswith('6') else 'sz') + stock_code
|
||||
_tc = ('sh' if stock_code.startswith('6') else 'bj' if stock_code.startswith(('8', '9')) else 'sz') + stock_code
|
||||
_rr = _rq.get(f'http://qt.gtimg.cn/q={_tc}', timeout=5,
|
||||
headers={'Referer': 'https://finance.qq.com'})
|
||||
if _rr.status_code == 200 and '\"' in _rr.text:
|
||||
|
||||
Reference in New Issue
Block a user