43 lines
707 B
Go
43 lines
707 B
Go
// backend\postwork_refresh.go
|
|
|
|
package main
|
|
|
|
import (
|
|
"reflect"
|
|
"strings"
|
|
"time"
|
|
)
|
|
|
|
func startPostWorkStatusRefresher() {
|
|
t := time.NewTicker(1 * time.Second)
|
|
go func() {
|
|
defer t.Stop()
|
|
|
|
for range t.C {
|
|
changed := false
|
|
|
|
jobsMu.Lock()
|
|
for _, job := range jobs {
|
|
key := strings.TrimSpace(job.PostWorkKey)
|
|
if key == "" {
|
|
continue
|
|
}
|
|
|
|
st := postWorkQ.StatusForKey(key)
|
|
|
|
// ✅ Kein Typname nötig: job.PostWork ist *<StatusType>, st ist <StatusType>
|
|
if job.PostWork == nil || !reflect.DeepEqual(*job.PostWork, st) {
|
|
tmp := st
|
|
job.PostWork = &tmp
|
|
changed = true
|
|
}
|
|
}
|
|
jobsMu.Unlock()
|
|
|
|
if changed {
|
|
notifyJobsChanged()
|
|
}
|
|
}
|
|
}()
|
|
}
|