修复复盘列表与统计并行同步撞锁导致模拟盘加载失败。
Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
@@ -291,9 +291,18 @@ def register_options_review_routes(app: Flask, cfg: dict[str, Any], repo_root: s
|
||||
"no",
|
||||
)
|
||||
if do_sync:
|
||||
ex, _err = _require_ex(cfg)
|
||||
ensure_local_review_synced(conn, ex=ex if ex is not None else None)
|
||||
conn.commit()
|
||||
try:
|
||||
ex, _err = _require_ex(cfg)
|
||||
ensure_local_review_synced(conn, ex=ex if ex is not None else None)
|
||||
conn.commit()
|
||||
except Exception as sync_err:
|
||||
# 同步撞锁时仍返回已有列表,避免整页 500
|
||||
print(f"[options_review_trades] sync skipped: {sync_err}", flush=True)
|
||||
try:
|
||||
conn.rollback()
|
||||
except Exception:
|
||||
pass
|
||||
init_options_review_tables(conn)
|
||||
filt = dict(
|
||||
source_type=_review_source_for_mode(request.args.get("source_type")),
|
||||
underlying=(request.args.get("underlying") or "").strip() or None,
|
||||
@@ -434,9 +443,26 @@ def register_options_review_routes(app: Flask, cfg: dict[str, Any], repo_root: s
|
||||
def api_options_review_stats():
|
||||
conn = cfg["get_db"]()
|
||||
try:
|
||||
ex, _err = _require_ex(cfg)
|
||||
ensure_local_review_synced(conn, ex=ex if ex is not None else None)
|
||||
conn.commit()
|
||||
# 默认不同步:与 trades?sync=1 并行时避免双写撞锁;需要时再 sync=1
|
||||
do_sync = (request.args.get("sync") or "0").strip().lower() in (
|
||||
"1",
|
||||
"true",
|
||||
"yes",
|
||||
)
|
||||
if do_sync:
|
||||
try:
|
||||
ex, _err = _require_ex(cfg)
|
||||
ensure_local_review_synced(conn, ex=ex if ex is not None else None)
|
||||
conn.commit()
|
||||
except Exception as sync_err:
|
||||
print(f"[options_review_stats] sync skipped: {sync_err}", flush=True)
|
||||
try:
|
||||
conn.rollback()
|
||||
except Exception:
|
||||
pass
|
||||
init_options_review_tables(conn)
|
||||
else:
|
||||
init_options_review_tables(conn)
|
||||
stats = compute_review_stats(
|
||||
conn,
|
||||
source_type=_review_source_for_mode(request.args.get("source_type")),
|
||||
|
||||
Reference in New Issue
Block a user