docs: 计划Task6测试确定性修正(singleflight 仅 in-flight 去重, fn 加 50ms sleep)
This commit is contained in:
@@ -704,9 +704,12 @@ package service
|
||||
import (
|
||||
"sync"
|
||||
"testing"
|
||||
"time"
|
||||
)
|
||||
|
||||
// analyzeOnce 应合并并发同键分析请求,只执行一次 fn
|
||||
// 注:singleflight 仅对 in-flight 请求去重,故 fn 内须 sleep(50ms) 拉长执行窗口,
|
||||
// 否则 10 个 goroutine 未必都在首个完成前启动,calls==1 断言会间歇失败(计划原版因此非确定,已修)。
|
||||
func TestAnalyzeOnceDedup(t *testing.T) {
|
||||
var mu sync.Mutex
|
||||
calls := 0
|
||||
@@ -714,6 +717,7 @@ func TestAnalyzeOnceDedup(t *testing.T) {
|
||||
mu.Lock()
|
||||
calls++
|
||||
mu.Unlock()
|
||||
time.Sleep(50 * time.Millisecond)
|
||||
return true, "dedup"
|
||||
}
|
||||
var wg sync.WaitGroup
|
||||
|
||||
Reference in New Issue
Block a user