- change sync.SyncSku to Serializable because of jd.spu
This commit is contained in:
@@ -244,9 +244,10 @@ func (v *VendorSync) SyncSku(ctx *jxcontext.Context, db *dao.DaoDB, nameID, skuI
|
|||||||
cond[model.FieldID] = skuID
|
cond[model.FieldID] = skuID
|
||||||
}
|
}
|
||||||
err := dao.GetEntitiesByKV(db, &skuList, cond, true)
|
err := dao.GetEntitiesByKV(db, &skuList, cond, true)
|
||||||
if err == nil {
|
if err == nil && len(skuList) > 0 {
|
||||||
// globals.SugarLogger.Debug(utils.Format4Output(skuList, false))
|
// globals.SugarLogger.Debug(utils.Format4Output(skuList, false))
|
||||||
task := tasksch.NewParallelTask("SyncSku loop sku", nil, userName, func(t *tasksch.ParallelTask, batchItemList []interface{}, params ...interface{}) (interface{}, error) {
|
// todo 这里SetParallelCount(1)的原因是京东SPU特殊类型必须要序列化同步才能正常处理, db可能会有多线程问题
|
||||||
|
task := tasksch.NewParallelTask("SyncSku loop sku", tasksch.NewParallelConfig().SetParallelCount(1), userName, func(t *tasksch.ParallelTask, batchItemList []interface{}, params ...interface{}) (interface{}, error) {
|
||||||
sku := batchItemList[0].(*model.Sku)
|
sku := batchItemList[0].(*model.Sku)
|
||||||
syncStatus := jxutils.GetObjFieldByName(sku, syncStatusFieldName).(int8)
|
syncStatus := jxutils.GetObjFieldByName(sku, syncStatusFieldName).(int8)
|
||||||
if (skuID == -1 || skuID == sku.ID) && (syncStatus != 0) {
|
if (skuID == -1 || skuID == sku.ID) && (syncStatus != 0) {
|
||||||
|
|||||||
@@ -335,14 +335,14 @@ func (p *PurchaseHandler) syncSkuNameAsSpu(db *dao.DaoDB, sku *model.Sku, skuExt
|
|||||||
|
|
||||||
// 这样写的原因是在sync里面已经把数据全部取出来了,在这个函数里对于数据库的改动不能体现,打个补丁
|
// 这样写的原因是在sync里面已经把数据全部取出来了,在这个函数里对于数据库的改动不能体现,打个补丁
|
||||||
skuNameJdID := skuExt.JdID
|
skuNameJdID := skuExt.JdID
|
||||||
globals.SugarLogger.Debugf("syncSkuNameAsSpu1 sku.id=%d, skuName:%s, skuNameJdID:%d", sku.ID, skuExt.SkuName, skuNameJdID)
|
globals.SugarLogger.Debugf("syncSkuNameAsSpu1 sku.id=%d, skuName:%s, skuNameJdID:%d", sku.ID, skuExt.Name, skuNameJdID)
|
||||||
if skuNameJdID == 0 {
|
if skuNameJdID == 0 {
|
||||||
tmpSkuName := &model.SkuName{}
|
tmpSkuName := &model.SkuName{}
|
||||||
tmpSkuName.ID = skuExt.ID
|
tmpSkuName.ID = skuExt.ID
|
||||||
if err = dao.GetEntity(db, tmpSkuName); err != nil {
|
if err = dao.GetEntity(db, tmpSkuName); err != nil {
|
||||||
return "", err
|
return "", err
|
||||||
}
|
}
|
||||||
globals.SugarLogger.Debugf("syncSkuNameAsSpu2 sku.id=%d, skuName:%s, tmpSkuName:%s", sku.ID, skuExt.SkuName, utils.Format4Output(tmpSkuName, false))
|
globals.SugarLogger.Debugf("syncSkuNameAsSpu2 sku.id=%d, skuName:%s, tmpSkuName:%s", sku.ID, skuExt.Name, utils.Format4Output(tmpSkuName, false))
|
||||||
skuExt.JdID = tmpSkuName.JdID
|
skuExt.JdID = tmpSkuName.JdID
|
||||||
skuNameJdID = skuExt.JdID
|
skuNameJdID = skuExt.JdID
|
||||||
}
|
}
|
||||||
@@ -425,7 +425,7 @@ func (p *PurchaseHandler) syncSkuNameAsSpu(db *dao.DaoDB, sku *model.Sku, skuExt
|
|||||||
if skuExt.JdSyncStatus != 0 {
|
if skuExt.JdSyncStatus != 0 {
|
||||||
skuExt.JdSyncStatus = 0
|
skuExt.JdSyncStatus = 0
|
||||||
_, err = dao.UpdateEntity(db, &skuExt.SkuName, updateFields...)
|
_, err = dao.UpdateEntity(db, &skuExt.SkuName, updateFields...)
|
||||||
globals.SugarLogger.Debugf("syncSkuNameAsSpu4 sku.id=%d, skuName:%s, skuName:%s", sku.ID, skuExt.SkuName, utils.Format4Output(&skuExt.SkuName, false))
|
globals.SugarLogger.Debugf("syncSkuNameAsSpu4 sku.id=%d, skuName:%s, skuName:%s", sku.ID, skuExt.Name, utils.Format4Output(&skuExt.SkuName, false))
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user