- RebindAllPrinters中改用NewParallelTask
This commit is contained in:
@@ -153,9 +153,9 @@ func RebindAllPrinters(ctx *jxcontext.Context, isForce, isAsync bool) (hint stri
|
|||||||
globals.SugarLogger.Debugf("RebindAllPrinters len(needRebindList):%d", len(needRebindList))
|
globals.SugarLogger.Debugf("RebindAllPrinters len(needRebindList):%d", len(needRebindList))
|
||||||
if len(needRebindList) > 0 {
|
if len(needRebindList) > 0 {
|
||||||
db := dao.GetDB()
|
db := dao.GetDB()
|
||||||
task := tasksch.NewSeqTask("RebindAllPrinters", ctx,
|
task := tasksch.NewParallelTask("RebindAllPrinters", tasksch.NewParallelConfig().SetIsContinueWhenError(true).SetParallelCount(4), ctx,
|
||||||
func(task *tasksch.SeqTask, step int, params ...interface{}) (result interface{}, err error) {
|
func(task *tasksch.ParallelTask, batchItemList []interface{}, params ...interface{}) (retVal interface{}, err error) {
|
||||||
store := needRebindList[step]
|
store := batchItemList[0].(*model.Store)
|
||||||
if handler := partner.GetPrinterPlatformFromVendorID(store.PrinterVendorID); handler != nil {
|
if handler := partner.GetPrinterPlatformFromVendorID(store.PrinterVendorID); handler != nil {
|
||||||
bindResult, err2 := handler.RebindPrinter(ctx, bindResultMap[store.ID])
|
bindResult, err2 := handler.RebindPrinter(ctx, bindResultMap[store.ID])
|
||||||
globals.SugarLogger.Debugf("RebindAllPrinters storeID:%d, result:%s, err:%v", store.ID, utils.Format4Output(bindResult, true), err2)
|
globals.SugarLogger.Debugf("RebindAllPrinters storeID:%d, result:%s, err:%v", store.ID, utils.Format4Output(bindResult, true), err2)
|
||||||
@@ -164,14 +164,14 @@ func RebindAllPrinters(ctx *jxcontext.Context, isForce, isAsync bool) (hint stri
|
|||||||
store.PrinterKey = bindResult.PrinterKey
|
store.PrinterKey = bindResult.PrinterKey
|
||||||
store.PrinterBindInfo = string(utils.MustMarshal(bindResult))
|
store.PrinterBindInfo = string(utils.MustMarshal(bindResult))
|
||||||
if _, err = dao.UpdateEntity(db, store); err == nil {
|
if _, err = dao.UpdateEntity(db, store); err == nil {
|
||||||
result = []int{1}
|
retVal = []int{1}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
globals.SugarLogger.Warnf("RebindAllPrinters strange PrinterVendorID:%d", store.PrinterVendorID)
|
globals.SugarLogger.Warnf("RebindAllPrinters strange PrinterVendorID:%d", store.PrinterVendorID)
|
||||||
}
|
}
|
||||||
return result, err
|
return retVal, err
|
||||||
}, len(needRebindList))
|
}, needRebindList)
|
||||||
|
|
||||||
tasksch.ManageTask(task).Run()
|
tasksch.ManageTask(task).Run()
|
||||||
if !isAsync {
|
if !isAsync {
|
||||||
|
|||||||
Reference in New Issue
Block a user