- BatchUpdateEntityByKV中panic时,打印调试信息

This commit is contained in:
gazebo
2019-09-20 09:11:41 +08:00
parent 61a5f9f040
commit aa3bfcd4c2
2 changed files with 35 additions and 12 deletions

View File

@@ -28,13 +28,10 @@ var (
func CreateStoreCategoryByStoreSku(ctx *jxcontext.Context, vendorID, storeID int, vendorStoreID string, nameIDs, skuIDs []int) (err error) { func CreateStoreCategoryByStoreSku(ctx *jxcontext.Context, vendorID, storeID int, vendorStoreID string, nameIDs, skuIDs []int) (err error) {
globals.SugarLogger.Debugf("CreateStoreCategoryByStoreSku vendorID:%d, storeID:%d", vendorID, storeID) globals.SugarLogger.Debugf("CreateStoreCategoryByStoreSku vendorID:%d, storeID:%d", vendorID, storeID)
db := dao.GetDB() db := dao.GetDB()
dao.Begin(db)
defer func() { defer func() {
if r := recover(); r != nil || err != nil { if r := recover(); r != nil {
dao.Rollback(db) dao.Rollback(db)
if r != nil { panic(r)
panic(r)
}
} }
}() }()
for i := 0; i < 2; i++ { for i := 0; i < 2; i++ {
@@ -42,15 +39,19 @@ func CreateStoreCategoryByStoreSku(ctx *jxcontext.Context, vendorID, storeID int
if err = err2; err != nil { if err = err2; err != nil {
return err return err
} }
for _, v := range localCats { if len(localCats) > 0 {
if v.MapID == 0 { dao.Begin(db)
if err = dao.AddStoreCategoryMap(db, storeID, v.ID, vendorID, "", model.SyncFlagNewMask, ctx.GetUserName()); err != nil { for _, v := range localCats {
return err if v.MapID == 0 {
if err = dao.AddStoreCategoryMap(db, storeID, v.ID, vendorID, "", model.SyncFlagNewMask, ctx.GetUserName()); err != nil {
dao.Rollback(db)
return err
}
} }
} }
dao.Commit(db)
} }
} }
dao.Commit(db)
return err return err
} }
@@ -257,6 +258,12 @@ func sku2Update(vendorID int, sku *dao.StoreSkuSyncInfo, syncStatus int8) (item
func updateStoreSku(db *dao.DaoDB, vendorID int, storeSkuList []*dao.StoreSkuSyncInfo, syncStatus int8) (num int64, err error) { func updateStoreSku(db *dao.DaoDB, vendorID int, storeSkuList []*dao.StoreSkuSyncInfo, syncStatus int8) (num int64, err error) {
if len(storeSkuList) > 0 { if len(storeSkuList) > 0 {
// defer func() {
// if r := recover(); r != nil {
// globals.SugarLogger.Debugf("updateStoreSku panic, vendorID:%d, len:%d, storeID0:%d, skuID0:%d, syncStatus:%d", vendorID, len(storeSkuList), storeSkuList[0].StoreID, storeSkuList[0].SkuID, syncStatus)
// panic(r)
// }
// }()
updateItemList := make([]*dao.KVUpdateItem, len(storeSkuList)) updateItemList := make([]*dao.KVUpdateItem, len(storeSkuList))
for k, v := range storeSkuList { for k, v := range storeSkuList {
updateItemList[k] = sku2Update(vendorID, v, syncStatus) updateItemList[k] = sku2Update(vendorID, v, syncStatus)

View File

@@ -73,8 +73,24 @@ func BatchUpdateEntityByKV(db *DaoDB, items []*KVUpdateItem) (num int64, err err
// } // }
// } // }
// }() // }()
for _, v := range items {
num2, err2 := UpdateEntityByKV(db, v.Item, v.KVs, nil) var item *KVUpdateItem
defer func() {
if r := recover(); r != nil {
if item != nil {
var bindID int64
value := refutil.CheckAndGetStructValue(item.Item).FieldByName(model.FieldID)
if value.IsValid() {
bindID = value.Int()
}
globals.SugarLogger.Debugf("BatchUpdateEntityByKV panic, bindID:%d, KVs:%s", bindID, utils.Format4Output(item.KVs, true))
}
panic(r)
}
}()
for _, item = range items {
num2, err2 := UpdateEntityByKV(db, item.Item, item.KVs, nil)
if err = err2; err != nil { if err = err2; err != nil {
return 0, err return 0, err
} }