package createVersion import ( "leit.com/LAPP_CHEERSSON_BACKEND/global" model "leit.com/LAPP_CHEERSSON_BACKEND/models/base" svr "leit.com/LAPP_CHEERSSON_BACKEND/services/base" apSvr "leit.com/LAPP_CHEERSSON_BACKEND/services/ap" "leit.com/LAPP_CHEERSSON_BACKEND/web/middleware/glog" "time" "context" ) //仓库 var custChan = make(chan model.Customer) //定义一个调度任务通道 /****查询要打印的任务**********/ func CreateVersionTask() { for { //创建继承Baxkground的子节点Context ctx, cancel := context.WithCancel(context.Background()) defer cancel() go doTaskVersion(ctx) data := make([]model.Customer, 0) //第一步,查询客户信息的数据 var serviceOfCust = svr.NewCustomerService() user := new(global.User) user.PlantNr = model.PlantNr user.UserId = "auto" data, err := serviceOfCust.Select(user, nil) if err != nil { continue } //第二步,把所有的服务调度放到channel for _, v := range data { custChan <- v } time.Sleep(1 * time.Hour) } } /********打印逻辑************/ func doTaskVersion(ctx context.Context) { //第三步,启动协程,从channel里读取数据 for { select { case <-ctx.Done(): return case task, ok := <-custChan: if !ok { return //停机退出 } var serviceOfCustVerHead = apSvr.NewCustDemandVerHeadService() user := new(global.User) user.PlantNr = model.PlantNr user.UserId = "auto" err := serviceOfCustVerHead.SelectOneByCustTask(user, task) if err != nil { glog.InfoExtln("创建错误记录", "err:", err) continue } } } }