diff --git a/business/jxutils/netprinter/netprinter.go b/business/jxutils/netprinter/netprinter.go index 83bc6e3af..8e56bad09 100644 --- a/business/jxutils/netprinter/netprinter.go +++ b/business/jxutils/netprinter/netprinter.go @@ -153,9 +153,9 @@ func RebindAllPrinters(ctx *jxcontext.Context, isForce, isAsync bool) (hint stri globals.SugarLogger.Debugf("RebindAllPrinters len(needRebindList):%d", len(needRebindList)) if len(needRebindList) > 0 { db := dao.GetDB() - task := tasksch.NewSeqTask("RebindAllPrinters", ctx, - func(task *tasksch.SeqTask, step int, params ...interface{}) (result interface{}, err error) { - store := needRebindList[step] + task := tasksch.NewParallelTask("RebindAllPrinters", tasksch.NewParallelConfig().SetIsContinueWhenError(true).SetParallelCount(4), ctx, + func(task *tasksch.ParallelTask, batchItemList []interface{}, params ...interface{}) (retVal interface{}, err error) { + store := batchItemList[0].(*model.Store) if handler := partner.GetPrinterPlatformFromVendorID(store.PrinterVendorID); handler != nil { 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) @@ -164,14 +164,14 @@ func RebindAllPrinters(ctx *jxcontext.Context, isForce, isAsync bool) (hint stri store.PrinterKey = bindResult.PrinterKey store.PrinterBindInfo = string(utils.MustMarshal(bindResult)) if _, err = dao.UpdateEntity(db, store); err == nil { - result = []int{1} + retVal = []int{1} } } } else { globals.SugarLogger.Warnf("RebindAllPrinters strange PrinterVendorID:%d", store.PrinterVendorID) } - return result, err - }, len(needRebindList)) + return retVal, err + }, needRebindList) tasksch.ManageTask(task).Run() if !isAsync {