feat(channels): 流控可配 —— 陌生人私聊额度走账号配置 directMsgPerMin(裁决 13)
- 后端:账号顶层 directMsgPerMin(缺失/0 = 保护性默认 6 条/分;正值 = 该值;负值 = 关闭并留带 source 的 WARN)
- 日志如实报出**实际生效**额度(adapter.(*FlowGate).DirectPerMin()),告警文案不再写死 6
- 面板:渠道配置表单加字段(含帮助文案)+ 回显/写回链路(LIMIT_KEYS 四键)+ 账号卡片摘要
- 文案纠错:AdapterConfigSummary 的 msgPerMin 由「私聊每分钟上限」改为「非主人消息每分钟总上限」(原描述是误导),并列补 directMsgPerMin 行
- 变异实测:缺键丢默认 / 负值当 1 条每分 / 前端吞负值 —— 三个都精确打红并还原
- ⚠️ 已知缺口(下一片补,gateway 面):GET/PUT /admin/channels 尚未下发/解码该键 ⇒ 面板暂时回显空、保存会把 -1 重置为 0
This commit is contained in:
1 parent
ba17820040
commit
a057a0f61f
18 files changed
+339
-70
No files matched your search
@@ -102,3 +102,17 @@ func TestFlowGate_AcquireTurnSinglePerConversation(t *testing.T) {
|
||||
g.ReleaseTurn(a)
|
||||
g.ReleaseTurn(b)
|
||||
}
|
||||
|
||||
// TestFlowGate_DirectPerMinMirrorsOption 钉住访问器报出的是**实际生效**的额度
|
||||
// (0 = 已关闭):调用方(channelbridge 被限流时的告警日志)据此如实报数,而不是
|
||||
// 写死保护性默认 6 —— 裁决 13 之后这个额度是按账号可配的。
|
||||
func TestFlowGate_DirectPerMinMirrorsOption(t *testing.T) {
|
||||
t.Parallel()
|
||||
|
||||
for _, want := range []int{0, 1, FlowDirectDefault, 20} {
|
||||
g := NewFlowGate(FlowGateOptions{DirectMsgPerMin: want})
|
||||
if got := g.DirectPerMin(); got != want {
|
||||
t.Fatalf("DirectPerMin() = %d, want %d", got, want)
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in new issue
Block a user