feat(wx-finance): 会话存档轮询间隔 3s→0.5s(支持亚秒, int→float)

mentor 要求把会话存档轮询从 3s 提到 0.5s。WX_FINANCE_POLL_INTERVAL_SEC 由 int 改 float
(默认 0.5), poller 的可打断 sleep 从 range(int) 改为按 ≤0.5s 分片的 while 循环(原 range()
不吃 float、无法支持亚秒间隔), 启动日志 %d→%s。

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
zzhyyyyy
2026-07-17 23:03:13 +08:00
parent 014e9a15e5
commit c97fbbad0e
2 changed files with 9 additions and 7 deletions
+8 -6
View File
@@ -94,7 +94,7 @@ def main() -> None:
)
seq = _load_seq()
logger.info(
"wx_finance poller 启动, 从 seq=%d 轮询, 间隔 %ds", seq, settings.WX_FINANCE_POLL_INTERVAL_SEC
"wx_finance poller 启动, 从 seq=%d 轮询, 间隔 %ss", seq, settings.WX_FINANCE_POLL_INTERVAL_SEC
)
with httpx.Client() as client:
while not _stop:
@@ -115,11 +115,13 @@ def main() -> None:
logger.exception("GetChatData 出错")
except Exception:
logger.exception("轮询异常")
# 可打断的 sleep(收到 SIGTERM 尽快退)
for _ in range(max(1, settings.WX_FINANCE_POLL_INTERVAL_SEC) * 2):
if _stop:
break
time.sleep(0.5)
# 可打断的 sleep:按 ≤0.5s 分片, 支持亚秒间隔(如 0.5s), 收到 SIGTERM 尽快退
interval = max(0.1, settings.WX_FINANCE_POLL_INTERVAL_SEC)
step = min(0.5, interval)
slept = 0.0
while slept < interval and not _stop:
time.sleep(step)
slept += step
sdk.close()
logger.info("wx_finance poller 已停止")