| Name |
Last commit
|
Last update |
|---|---|---|
| .. | ||
| cli | ||
| common | ||
| config | ||
| modules | ||
| openapi | ||
| prisma | ||
| queues | ||
| redis | ||
| types | ||
| app.module.ts | ||
| health.controller.ts | ||
| instrument.ts | ||
| main.ts |
① 基数 N 的取值改成产品定的算法: 首次 min(在岗人数 × 20, 候选总数),之后 min(上一次的 N, 候选总数),时效首次 3 天后沿用。⚠ ️ 与候选取小压低的是 target,⛔ **不回写基数** —— 候选不够是这一批的偶然事实, 存进去的话主管点一次 44 人的小格子,以后所有批次永远 44 人,而他看不出为什么。 所以确认单同时给 batchSize(基数)与 target(本批实际),卡片存前者。⚠ ️ fetchLimit 改按基数算,让 count 与取明细还能并发,不多一个来回。 ②🔴 硬约束:**客服不能接别人的专属患者**。有专属(且在名册内)的患者只有一个去处, 给不下就落不下(unplaced),不允许溢出给第三个人。 · 推翻原「专属已满 → 溢出转铺平」,SPREAD_OVERFLOW 不再产生(枚举保留,老批次在用); · 两趟分工改为「专属独占 → 无主患者水位法」,后者负责抹平前者造成的不齐; · maxThisBatch 精调压过专属:说了只给 5 条,第 6 个她的专属患者就落不下,⛔ 不许改派; · 上一版给专属加的"目标水位封顶"与本约束冲突(会把专属患者改派给第三人),撤掉。⚠ ️ 直接后果,已在教条里写明:「最后齐平」变成尽力而为。实测 N=340 时康慧捧 一个人是其中 248 人的专属,他就拿 248 条 —— 那些患者只有他能接。 调节手段是给他设 maxThisBatch 或换更小的 N,⛔ 不是让系统偷偷分给别人。 本地实测:1,081 候选 → 首批 340 人(17×20),池子里还有 741 人排队。988 tests green。 Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
| Name |
Last commit
|
Last update |
|---|---|---|
| .. | ||
| cli | Loading commit data... | |
| common | Loading commit data... | |
| config | Loading commit data... | |
| modules | Loading commit data... | |
| openapi | Loading commit data... | |
| prisma | Loading commit data... | |
| queues | Loading commit data... | |
| redis | Loading commit data... | |
| types | Loading commit data... | |
| app.module.ts | Loading commit data... | |
| health.controller.ts | Loading commit data... | |
| instrument.ts | Loading commit data... | |
| main.ts | Loading commit data... |