26 lines
888 B
Python
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)
|