- 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) {
globals.SugarLogger.Debugf("CreateStoreCategoryByStoreSku vendorID:%d, storeID:%d", vendorID, storeID)
db := dao.GetDB()
dao.Begin(db)
defer func() {
if r := recover(); r != nil || err != nil {
if r := recover(); r != nil {
dao.Rollback(db)
if r != nil {
panic(r)
}
panic(r)
}
}()
for i := 0; i < 2; i++ {
@@ -42,15 +39,19 @@ func CreateStoreCategoryByStoreSku(ctx *jxcontext.Context, vendorID, storeID int
if err = err2; err != nil {
return err
}
for _, v := range localCats {
if v.MapID == 0 {
if err = dao.AddStoreCategoryMap(db, storeID, v.ID, vendorID, "", model.SyncFlagNewMask, ctx.GetUserName()); err != nil {
return err
if len(localCats) > 0 {
dao.Begin(db)
for _, v := range localCats {
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
}
@@ -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) {
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))
for k, v := range storeSkuList {
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 {
return 0, err
}