12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758 |
- package dao
- import (
- "go-common/app/service/bbq/recsys/dao/parallel"
- "github.com/Dai0522/workpool"
- )
- // parallelTask2 .
- func (d *Dao) parallelTask2(tasks map[string]workpool.Task) map[string]workpool.FutureTask {
- ftMap := make(map[string]workpool.FutureTask)
- for name, task := range tasks {
- ft := workpool.NewFutureTask(task)
- retry := 0
- err := d.wp.Submit(ft)
- for err != nil && retry < 3 {
- err = d.wp.Submit(ft)
- retry++
- }
- ftMap[name] = *ft
- }
- return ftMap
- }
- // parallelTask .
- func (d *Dao) parallelTask(tasks []workpool.Task) *[]workpool.FutureTask {
- ftArr := make([]workpool.FutureTask, len(tasks))
- for i := range tasks {
- ft := workpool.NewFutureTask(tasks[i])
- retry := 0
- err := d.wp.Submit(ft)
- for err != nil && retry < 3 {
- err = d.wp.Submit(ft)
- retry++
- }
- ftArr[i] = *ft
- }
- return &ftArr
- }
- // ParallelRedis run redis cmd parallel
- func (d *Dao) ParallelRedis(tasks *[]parallel.RedisTask) *[]workpool.FutureTask {
- ftArr := make([]workpool.FutureTask, len(*tasks))
- for i := range *tasks {
- ft := workpool.NewFutureTask(&(*tasks)[i])
- retry := 0
- err := d.wp.Submit(ft)
- for err != nil && retry < 3 {
- err = d.wp.Submit(ft)
- retry++
- }
- ftArr[i] = *ft
- }
- return &ftArr
- }
|