「评论→发出」秒级账本 + 一次提速实验的完整复盘(诊断 → 上线 → 实测 → 翻车 → 回滚)· 2026-06-11
这条链路所有的“几分钟”,九成是 cron 节拍 + 轮询等待,真干活都是秒级。下面把每一跳拆成「等待(排队/节拍)+ 执行(真干活)」,并复盘一次想压缩它、却反而搞慢了的真实实验。
| 环节 | 做什么 | 等待(节拍/轮询) | 执行(真干活) | 典型合计 |
|---|---|---|---|---|
| B1 评论→抓取 | 定时刷视频评论区,抓新评论入库 | 抓取节拍 ~60s + 抖音评论可见延迟 30–120s | 单视频抓取 6.8s | p50 ~4–6 min |
| B2 抓取→打分 | 批量给评论打意向分(高/中/低/无关)+ 关键词 | analyze */2 半周期 ~60s + batch 排队 0~数 min | 单条 3s(整批 15 条 44.7s,deepseek-v4-flash) | 1–3 min |
| B3 打分→生成话术 | 高/中意向生成破冰首句 | 0(多为 claim 时现生,不等 cron) | opener 6–8s(qwen3-235b-2507) | 6–8 s |
| B4 话术→派单 | claim 4h 锁,写 dispatch_queue | dispatch */1 半周期 ~30s | claim+insert <0.1s | ~30 s |
| B5 派单→触达起 | 云电脑 agent 轮询拉走 claim,写 CSV,启动发送脚本 | 云电脑轮询 60s 半周期 ~30s | RPC+CSV <0.1s | ~30–60 s |
| B6 GUI 实发(单条) | 搜人→定位→核身份→打字→点发送 | 条间 sleep 30–90s(反检测硬墙) | 净操作 30–60s(逐步见下) | 60–150 s |
| B7 触达→回复 | 轮询对方是否回复 | 用户侧不可控 | — |
| 环节 | ① 理想最快 | ② 图里青箱(实样本) | ③ 典型 p50 |
|---|---|---|---|
| B1 评论→抓取 | 1:30 | 5:00 | 6:00 |
| B2 抓取→打分 | 0:50 | 1:00 | 2:00 |
| B3 生成话术 | 0:08 | 1:00 | 0:30 |
| B4 派单 | 0:30 | 1:00 | 1:00 |
| B5 派单→触达起 | 0:30 | — | 1:00 |
| B6 GUI 实发(首条) | 0:45 | 2:00(含 B5) | 1:30 |
| 合计(评论→发出) | ≈ 4:15 | 9:18 | 12–20 min |
这段不在单条 lead 时间线里,但它决定一条评论的视频在不在抓取快车道——是 2 分钟还是 4 小时被抓到。
| 阶段 | 做什么 | 耗时 | 说明 / 瓶颈 |
|---|---|---|---|
| A1 选词 | 从 6 维度词库挑词 | ~3 min | 本地免费;词库用尽会卡产能 提升点 |
| A2 捞作者 | CDP Chrome 触发抖音搜索直链 | ~2–3 min/100 | 不花蝉妈妈钱 |
| A3 f2 富化 | 本地 f2 拉每号视频,算 avg_comments | ~13 min/100 | 串行硬墙 ≈ 12 号/min,并发会崩 + 限流 |
| A4 实拉验证(可选) | 拉新鲜评论 LLM 打分 | ~5–8 min | 可 soft-skip |
| A5 入库 | 置信度分流 + 标 tier1 | ~10 s | org_id 必填 |
| 一轮扩源 | 手工驱动 | ~20–25 min | 日产 tier1 ~4–10 / 总号 ~50–100 |
| A6 tier0→tier1 升级 | 近 3 天高意向 ≥5 自动升 | 最快 3 天 | 需先抓够评论、打够分;每天 01:00 UTC 跑 改滑窗可压到 1–2 天 |
scrape_jobs 队列全空、worker 利用率 ~10%(8s/job)。判定瓶颈是 cron 节拍 + 视频进快车道的资格门,不是 worker 吞吐 → 调密 cron“应该”能压延迟、不会堆积队列。| cron | 提速前 | 提速后 | 意图 |
|---|---|---|---|
| vip-video-rescan | */5 | */2 | VIP 视频更勤复扫 |
| scrape-hot(tier1 源) | */3 | */2 | 新视频更快发现 |
| hot-video-rotation | 日更 | 每 6h | 新爆款当天进快车道 |
部署 ~07:58 UTC。上线前明确标过唯一风险:抖音对单视频评论 API 的限频。这一把赌它扛得住——赌输了。
| 测量 | 口径 | 全部 p50/p90 | 中高意向 p50 | 判读 |
|---|---|---|---|---|
| 基线(提速前) | 近 3h 窗口快照 | 11 / 690 min | 6(n小) | 参考 |
| R1 · 部署后 67min | 只看部署后新评论 | 4.2 / 22.5 | —(n=4 太薄) | 早期像正面,但有右删失偏差 |
| R2 · 部署后 128min | 只看部署后新评论 | 15.2 / 48.5 | 16.5(n=9) | 明显变差,但混着时段/删失 |
| 决定性 · 提速前 | 06-10 08:00–09:00 UTC | 3.4 / 20.7 | 4.4(n=14) | 同一北京下午时段、隔天对比,排除时段混淆 → p50 3.4 → 15.1,约 4× 恶化 |
| 决定性 · 提速后 | 06-11 08:00–09:00 UTC | 15.1 / 49.3 | 16.4(n=6) |
_diag-scrape-lag 的 6h 滚动平均,以为 worker 单抓耗时 6.8→10.3s「一路爬」=被限速。但那是被 limit 截断的伪趋势。按完成时间分桶重测,结论反转:
| 时段 | 单抓耗时 |
|---|---|
| 提速前·基线 | 12.0s |
| 提速期 | 7.8–8.4s |
| 回滚后 | 9.6–10.7s |
三条 cron 全部退回提速前原值,止血。纯 vercel.json 改,git revert 即回。回滚后再测一轮:延迟回到 ~4min = 坐实因果;仍高 = 抖音独立事件另查。
数据来源:本机 _diag-scrape-lag / _diag-cohort-compare 实测(2026-06-11)。相关 PR:#298(提速·已回滚)、#303(回滚)。链路涉及 Vercel cron + Fly worker(f2 抓取)+ 阿里无影云电脑 GUI 发送。