- BatchUpdateEntityByKV中不用事务

This commit is contained in:
gazebo
2019-09-11 22:59:19 +08:00
parent 5ffeb4142c
commit 84b4d400e4

View File

@@ -63,15 +63,16 @@ func UpdateEntityByKV(db *DaoDB, item interface{}, kvs map[string]interface{}, c
func BatchUpdateEntityByKV(db *DaoDB, items []*KVUpdateItem) (num int64, err error) { func BatchUpdateEntityByKV(db *DaoDB, items []*KVUpdateItem) (num int64, err error) {
if len(items) > 0 { if len(items) > 0 {
Begin(db) // 不用事务应该是OK的吧用事务经常会导致死锁不同平台在同步同一条数据
defer func() { // Begin(db)
if r := recover(); r != nil || err != nil { // defer func() {
Rollback(db) // if r := recover(); r != nil || err != nil {
if r != nil { // Rollback(db)
panic(r) // if r != nil {
} // panic(r)
} // }
}() // }
// }()
for _, v := range items { for _, v := range items {
num2, err2 := UpdateEntityByKV(db, v.Item, v.KVs, nil) num2, err2 := UpdateEntityByKV(db, v.Item, v.KVs, nil)
if err = err2; err != nil { if err = err2; err != nil {
@@ -79,7 +80,7 @@ func BatchUpdateEntityByKV(db *DaoDB, items []*KVUpdateItem) (num int64, err err
} }
num += num2 num += num2
} }
Commit(db) // Commit(db)
} }
return num, nil return num, nil
} }