优化支付耗时和日志

This commit is contained in:
yml2213
2026-08-12 23:20:43 +08:00
parent f1a22e87e9
commit 74a85c8328
5 changed files with 81 additions and 71 deletions
@@ -61,8 +61,9 @@ def _safe_log(job: dict, line: str) -> None:
clean = re.sub(r"(?:token|openid|openkey|cookie)=\S+", "[敏感字段已隐藏]", clean, flags=re.I)
clean = re.sub(r"(?:pay_token|web_token|anti_token|session_id|sessionid)\s*[:= ]\s*\S+",
"[敏感字段已隐藏]", clean, flags=re.I)
timestamp = time.strftime("%H:%M:%S")
with _lock:
job["logs"] = (job.get("logs", []) + [clean.strip()])[-100:]
job["logs"] = (job.get("logs", []) + [f"[{timestamp}] {clean.strip()}"])[-100:]
def _run_process(job_id: str, command: list[str], phase: str, mark_success: bool = True) -> int:
@@ -79,6 +80,8 @@ def _run_process(job_id: str, command: list[str], phase: str, mark_success: bool
with _lock:
job["phase"] = phase
job["status"] = "running"
stage_started = time.monotonic()
_safe_log(job, f"[{phase}] 开始执行")
try:
process = subprocess.Popen(command, cwd=ROOT, stdout=subprocess.PIPE,
stderr=subprocess.STDOUT, text=True,
@@ -89,6 +92,7 @@ def _run_process(job_id: str, command: list[str], phase: str, mark_success: bool
for line in process.stdout:
_safe_log(job, line)
code = process.wait()
_safe_log(job, f"[{phase}] 执行结束,耗时 {time.monotonic() - stage_started:.1f}")
with _lock:
job["process_pid"] = None
if code != 0:
@@ -109,6 +113,7 @@ def _run_process(job_id: str, command: list[str], phase: str, mark_success: bool
job["message"] = "付款流程已完成"
return code
except Exception as exc: # noqa: BLE001
_safe_log(job, f"[{phase}] 执行异常,耗时 {time.monotonic() - stage_started:.1f}")
with _lock:
job["status"] = "failed"
job["message"] = str(exc)
@@ -189,10 +194,13 @@ def _check_payment_once(job_id: str) -> int:
"--out-dir", str(directory / "jsdom-order")]
environment = os.environ.copy()
environment.pop("NODE_OPTIONS", None)
check_started = time.monotonic()
_safe_log(job, "[到账检测] 开始执行")
try:
result = subprocess.run(command, cwd=ROOT, capture_output=True, text=True,
env=environment, timeout=90)
except subprocess.TimeoutExpired:
_safe_log(job, f"[到账检测] 执行超时,耗时 {time.monotonic() - check_started:.1f}")
with _lock:
job["payment_last_checked_at"] = int(time.time())
return 2
@@ -200,6 +208,7 @@ def _check_payment_once(job_id: str) -> int:
_safe_log(job, line)
for line in (result.stderr or "").splitlines():
_safe_log(job, line)
_safe_log(job, f"[到账检测] 执行结束,耗时 {time.monotonic() - check_started:.1f}")
with _lock:
job["payment_last_checked_at"] = int(time.time())
return result.returncode