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:
@@ -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 已停止")
|
||||
|
||||
|
||||
Reference in New Issue
Block a user