- only clear sync status when SkuShopCategoryMap succeeded
- and DetailErrList for tasksch.
This commit is contained in:
@@ -126,6 +126,9 @@ func (task *ParallelTask) Run() {
|
|||||||
chanRetVal = err
|
chanRetVal = err
|
||||||
goto end
|
goto end
|
||||||
}
|
}
|
||||||
|
task.locker.Lock()
|
||||||
|
task.DetailErrList = append(task.DetailErrList, err)
|
||||||
|
task.locker.Unlock()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -176,9 +179,8 @@ func (task *ParallelTask) Run() {
|
|||||||
task.Result = taskResult
|
task.Result = taskResult
|
||||||
task.TerminatedAt = time.Now()
|
task.TerminatedAt = time.Now()
|
||||||
task.locker.Unlock()
|
task.locker.Unlock()
|
||||||
|
globals.SugarLogger.Debugf("ParallelTask.Run %s, err:%v", task.Name, taskErr)
|
||||||
globals.SugarLogger.Debugf("ParallelTask.Run %s, result:%v, err:%v", task.Name, taskResult, taskErr)
|
// globals.SugarLogger.Debugf("ParallelTask.Run %s, result:%v, err:%v", task.Name, taskResult, taskErr)
|
||||||
|
|
||||||
close(task.subFinishChan)
|
close(task.subFinishChan)
|
||||||
|
|
||||||
if task.resultHandler != nil {
|
if task.resultHandler != nil {
|
||||||
|
|||||||
@@ -45,6 +45,9 @@ func (task *SeqTask) Run() {
|
|||||||
if !task.IsContinueWhenError {
|
if !task.IsContinueWhenError {
|
||||||
break
|
break
|
||||||
}
|
}
|
||||||
|
task.locker.Lock()
|
||||||
|
task.DetailErrList = append(task.DetailErrList, err)
|
||||||
|
task.locker.Unlock()
|
||||||
} else if result != nil {
|
} else if result != nil {
|
||||||
taskResult = append(taskResult, utils.Interface2Slice(result)...)
|
taskResult = append(taskResult, utils.Interface2Slice(result)...)
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -61,9 +61,10 @@ type BaseTask struct {
|
|||||||
FailedJobCount int `json:"failedJobCount"`
|
FailedJobCount int `json:"failedJobCount"`
|
||||||
Status int `json:"status"`
|
Status int `json:"status"`
|
||||||
|
|
||||||
Result []interface{} `json:"result"`
|
Result []interface{} `json:"result"`
|
||||||
Err error `json:"err"`
|
Err error `json:"err"`
|
||||||
Children TaskList `json:"children"`
|
Children TaskList `json:"children"`
|
||||||
|
DetailErrList []error `json:"detailErrList"`
|
||||||
|
|
||||||
finishChan chan int
|
finishChan chan int
|
||||||
C <-chan int `json:"-"`
|
C <-chan int `json:"-"`
|
||||||
|
|||||||
@@ -136,16 +136,21 @@ func (p *PurchaseHandler) SyncStoreSkus(ctx *jxcontext.Context, parentTask tasks
|
|||||||
task := tasksch.NewParallelTask("SyncStoreSkus skus", nil, userName, func(t *tasksch.ParallelTask, batchItemList []interface{}, params ...interface{}) (retVal interface{}, err error) {
|
task := tasksch.NewParallelTask("SyncStoreSkus skus", nil, userName, func(t *tasksch.ParallelTask, batchItemList []interface{}, params ...interface{}) (retVal interface{}, err error) {
|
||||||
storeSku := batchItemList[0].(*tStoreSkuFullInfo)
|
storeSku := batchItemList[0].(*tStoreSkuFullInfo)
|
||||||
updateFields := []string{model.FieldEbaiSyncStatus}
|
updateFields := []string{model.FieldEbaiSyncStatus}
|
||||||
|
isCreate := false
|
||||||
if globals.EnableStoreWrite {
|
if globals.EnableStoreWrite {
|
||||||
if storeSku.EbaiSyncStatus&model.SyncFlagDeletedMask != 0 {
|
if storeSku.EbaiSyncStatus&model.SyncFlagDeletedMask != 0 {
|
||||||
err = api.EbaiAPI.SkuDelete(strStoreID, utils.Int64ToStr(storeSku.EbaiID))
|
err = api.EbaiAPI.SkuDelete(strStoreID, utils.Int64ToStr(storeSku.EbaiID))
|
||||||
} else if storeSku.EbaiSyncStatus&model.SyncFlagNewMask != 0 {
|
} else if storeSku.EbaiSyncStatus&model.SyncFlagNewMask != 0 {
|
||||||
// globals.SugarLogger.Debug(utils.Format4Output(genSkuParamsFromStoreSkuInfo(storeSku), false))
|
// globals.SugarLogger.Debug(utils.Format4Output(genSkuParamsFromStoreSkuInfo(storeSku), false))
|
||||||
if storeSku.EbaiID, err = api.EbaiAPI.SkuCreate(strStoreID, storeSku.SkuID, genSkuParamsFromStoreSkuInfo(storeSku)); err == nil {
|
if storeSku.EbaiID, err = api.EbaiAPI.SkuCreate(strStoreID, storeSku.SkuID, genSkuParamsFromStoreSkuInfo(storeSku)); err == nil {
|
||||||
// todo 创建SKU后马上绑定分类,会失败,待解决
|
|
||||||
updateFields = append(updateFields, model.FieldEbaiID)
|
updateFields = append(updateFields, model.FieldEbaiID)
|
||||||
|
isCreate = true
|
||||||
|
// 创建SKU后马上绑定分类,会失败,所以延迟绑定
|
||||||
time.AfterFunc(3*time.Second, func() {
|
time.AfterFunc(3*time.Second, func() {
|
||||||
api.EbaiAPI.SkuShopCategoryMap(strStoreID, storeSku.EbaiID, utils.Int64ToStr(storeSku.CatEbaiID))
|
if err := api.EbaiAPI.SkuShopCategoryMap(strStoreID, storeSku.EbaiID, utils.Int64ToStr(storeSku.CatEbaiID)); err == nil {
|
||||||
|
storeSku.EbaiSyncStatus = 0
|
||||||
|
dao.UpdateEntity(nil, &storeSku.StoreSkuBind, updateFields...)
|
||||||
|
}
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
} else if storeSku.EbaiSyncStatus&model.SyncFlagModifiedMask != 0 {
|
} else if storeSku.EbaiSyncStatus&model.SyncFlagModifiedMask != 0 {
|
||||||
@@ -155,7 +160,11 @@ func (p *PurchaseHandler) SyncStoreSkus(ctx *jxcontext.Context, parentTask tasks
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
if err == nil {
|
if err == nil {
|
||||||
storeSku.EbaiSyncStatus = 0
|
if isCreate {
|
||||||
|
storeSku.EbaiSyncStatus = model.SyncFlagModifiedMask
|
||||||
|
} else {
|
||||||
|
storeSku.EbaiSyncStatus = 0
|
||||||
|
}
|
||||||
_, err = dao.UpdateEntity(nil, &storeSku.StoreSkuBind, updateFields...)
|
_, err = dao.UpdateEntity(nil, &storeSku.StoreSkuBind, updateFields...)
|
||||||
}
|
}
|
||||||
return nil, err
|
return nil, err
|
||||||
|
|||||||
Reference in New Issue
Block a user