我有一个 jobWorker 应该处理工作,并且在这个工作人员中有数据库读写、日志文件、接收 api 和一些数据计算。
var mystruct strcut{}
func worker(v) {
Get data from database
...
Update database status
...
useByWorker()
...
Do some computing
...
Receive API
...
Write log file
}
func useByWorker() {
mystruct = {1,2,3}
}
这是我运行 go-worker 的主要功能。
func main() {
var wg sync.WaitGroup
data := [][]string{}
wg.Add(1)
for k,v := range data {
k := k
v := v
go func(k int, v []string) {
fmt.Println(k,v)
worker(v)
wg.Done()
}(k, v)
}
wg.Wait()
}
数据竞争问题让工作人员使用的日志和我的数据混淆了。任何方式都可以简单地解决没有锁(Mutex.Lock)的数据竞争问题。我希望工作可以更快地由工人处理。
任何建议或提示都会有所帮助。谢谢。