Files
sanguo_vnpy_v2/scripts/bridge_err_full.py
T

26 lines
888 B
Python

# -*- coding: utf-8 -*-
"""order_error_events 完整 payload(拒因定位)。"""
import json
import re
pw = None
for line in open(r"C:\redis\redis.conf"):
m = re.match(r"^requirepass\s+(\S+)", line)
if m:
pw = m.group(1).strip()
import redis
r = redis.Redis(host="127.0.0.1", port=6379, db=5, password=pw,
decode_responses=True)
seen_msgs = {}
for ts, fields in r.xrevrange("bigqmt:order_error_events:66639661", count=26):
d = json.loads(fields["payload"])
msg = d.get("error_msg") or d.get("msg") or d.get("order_msg") or str(d)
code = d.get("stock_code")
err_id = d.get("error_id") or d.get("errorid") or ""
seen_msgs.setdefault((str(err_id), str(msg)[:200]), []).append(code)
for (err_id, msg), codes in seen_msgs.items():
print("err_id=%s n=%d codes=%s" % (err_id, len(codes), ",".join(codes[:8])))
print(" msg:", msg)