实现付款后订单监控:真实探测 order.my.rakuten.co.jp 配送阶段
用真实订单号 306087-20260813-0863947697 探测 order.my.rakuten.co.jp(订单列表/ 详情页),拿到真实 DOM 结构后实现 SiteInteractor.check_order_status: - 详情页 URL 可直接从 site_order_id 构造(shop_id 是订单号第一段) - 配送阶段用「进度条」组件的 4 个固定阶段(ショップ/出荷/配達店/配達完了), 当前阶段的 class 带 -active-- 中缀,映射到 OrderState.SHIPPED/DELIVERED - 查不到订单号、进度条解析不出新阶段都不算错误,交给轮询循环继续重试 runner.WorkerRunner 新增 _monitor_order 后台轮询:付款成功上报后以 asyncio.create_task 起后台任务(不阻塞主循环领下一单,因为 SiteInteractor 的 Playwright 操作全程持锁串行化),状态变化时用 terminal=False 追加 report; 新增 cancel_monitors() 在服务关闭时于 SiteInteractor.close() 之前收尾。 Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
This commit is contained in:
@@ -81,6 +81,10 @@ RAKUTEN_AUTH_STATE_DIR=.auth
|
||||
# 下单金额上限(日元):实际应付超过该值直接拒绝提交,防止解析出错或页面改版
|
||||
# 导致买到远超预期的订单。设为 0 表示不设上限(不建议)。
|
||||
RAKUTEN_ORDER_MAX_TOTAL_YEN=30000
|
||||
# 付款后监控(订单列表页轮询)间隔(秒)与最大轮询次数。间隔不宜太短——同一账号
|
||||
# 频繁访问订单页有被风控盯上的风险。默认 3 小时一次,最多 80 次(约 10 天)。
|
||||
RAKUTEN_ORDER_MONITOR_POLL_INTERVAL_SECONDS=10800
|
||||
RAKUTEN_ORDER_MONITOR_MAX_CHECKS=80
|
||||
|
||||
# ---- 以下仅下单任务网关使用 ----
|
||||
# 任务队列 SQLite 文件路径(相对项目根目录)。务必放在持久化卷上,丢了等于
|
||||
|
||||
Reference in New Issue
Block a user