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
|
stock_name = get_stock_name(stock_code) or stock_code
|
||||||
|
|
||||||
# 获取资金流向和技术信号
|
# 获取资金流向和技术信号
|
||||||
|
conn = None
|
||||||
try:
|
try:
|
||||||
conn = get_db()
|
conn = get_db()
|
||||||
if conn:
|
if conn:
|
||||||
@@ -384,12 +385,14 @@ def ai_analyze_stream(stock_code):
|
|||||||
stock_data['indicators'] = scan_row['indicators'] or {}
|
stock_data['indicators'] = scan_row['indicators'] or {}
|
||||||
stock_data['triggered_count'] = scan_row['triggered_count'] or 0
|
stock_data['triggered_count'] = scan_row['triggered_count'] or 0
|
||||||
cur2.close()
|
cur2.close()
|
||||||
|
|
||||||
put_db(conn)
|
|
||||||
except Exception as e:
|
except Exception as e:
|
||||||
print(f"获取数据失败: {e}")
|
print(f"获取数据失败: {e}")
|
||||||
|
finally:
|
||||||
|
if conn:
|
||||||
|
put_db(conn)
|
||||||
|
|
||||||
# 记录AI调用日志
|
# 记录AI调用日志
|
||||||
|
_conn = None
|
||||||
try:
|
try:
|
||||||
from flask import session as _sess
|
from flask import session as _sess
|
||||||
_uid = _sess.get('user_id')
|
_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)",
|
_cur.execute("INSERT INTO ai_call_log (user_id, stock_code, stock_name) VALUES (%s, %s, %s)",
|
||||||
(_uid, stock_code, stock_name))
|
(_uid, stock_code, stock_name))
|
||||||
_conn.commit()
|
_conn.commit()
|
||||||
put_db(_conn)
|
|
||||||
except Exception:
|
except Exception:
|
||||||
pass
|
pass
|
||||||
|
finally:
|
||||||
|
if _conn:
|
||||||
|
put_db(_conn)
|
||||||
|
|
||||||
# 流式调用AI
|
# 流式调用AI
|
||||||
for chunk in analyze_stock_stream(stock_code, stock_name, stock_data):
|
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
|
stock_name = get_stock_name(stock_code) or stock_code
|
||||||
|
|
||||||
# 获取近三日资金流向
|
# 获取近三日资金流向
|
||||||
|
conn = None
|
||||||
try:
|
try:
|
||||||
conn = get_db()
|
conn = get_db()
|
||||||
if conn:
|
if conn:
|
||||||
@@ -468,9 +474,11 @@ def ai_analyze(stock_code):
|
|||||||
'super_pct': float(row[3]) if row[3] else 0,
|
'super_pct': float(row[3]) if row[3] else 0,
|
||||||
})
|
})
|
||||||
stock_data['fund_flow_3days'] = fund_flow
|
stock_data['fund_flow_3days'] = fund_flow
|
||||||
put_db(conn)
|
|
||||||
except Exception as e:
|
except Exception as e:
|
||||||
print(f"获取资金流向失败: {e}")
|
print(f"获取资金流向失败: {e}")
|
||||||
|
finally:
|
||||||
|
if conn:
|
||||||
|
put_db(conn)
|
||||||
|
|
||||||
# 调用AI分析
|
# 调用AI分析
|
||||||
result = analyze_stock(stock_code, stock_name, stock_data)
|
result = analyze_stock(stock_code, stock_name, stock_data)
|
||||||
|
|||||||
@@ -485,7 +485,7 @@ def get_fundamental(stock_code):
|
|||||||
# 备用方案:先试腾讯API,再试akshare
|
# 备用方案:先试腾讯API,再试akshare
|
||||||
try:
|
try:
|
||||||
import requests as _rq
|
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,
|
_rr = _rq.get(f'http://qt.gtimg.cn/q={_tc}', timeout=5,
|
||||||
headers={'Referer': 'https://finance.qq.com'})
|
headers={'Referer': 'https://finance.qq.com'})
|
||||||
if _rr.status_code == 200 and '\"' in _rr.text:
|
if _rr.status_code == 200 and '\"' in _rr.text:
|
||||||
|
|||||||
Reference in New Issue
Block a user