Merge remote-tracking branch 'origin/master'
This commit is contained in:
@@ -2362,6 +2362,43 @@ VALUES (
|
||||
avgUSDByKey[key] = avgUSD
|
||||
}
|
||||
|
||||
// Fill missing descriptions from MSSQL (best-effort, small set).
|
||||
{
|
||||
miss := make([]string, 0, len(codes))
|
||||
for _, c := range codes {
|
||||
if strings.TrimSpace(descByCode[c]) == "" {
|
||||
miss = append(miss, c)
|
||||
}
|
||||
}
|
||||
if len(miss) > 0 {
|
||||
type res struct{ code, desc string }
|
||||
jobs := make(chan string, len(miss))
|
||||
out := make(chan res, len(miss))
|
||||
worker := func() {
|
||||
for code := range jobs {
|
||||
stepCtx, cancel := context.WithTimeout(bg, 2*time.Second)
|
||||
d, _ := queries.GetItemDescriptionTRByItemCode(stepCtx, mssqlLocal, code)
|
||||
cancel()
|
||||
out <- res{code: code, desc: d}
|
||||
}
|
||||
}
|
||||
workers := 8
|
||||
for i := 0; i < workers; i++ {
|
||||
go worker()
|
||||
}
|
||||
for _, c := range miss {
|
||||
jobs <- c
|
||||
}
|
||||
close(jobs)
|
||||
for i := 0; i < len(miss); i++ {
|
||||
r := <-out
|
||||
if strings.TrimSpace(r.desc) != "" {
|
||||
descByCode[r.code] = r.desc
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
writeCtx, cancelWrite := context.WithTimeout(bg, 12*time.Second)
|
||||
err = queries.ReplaceProductionCostingLast10Warnings(
|
||||
writeCtx,
|
||||
|
||||
Reference in New Issue
Block a user