151 lines
4.1 KiB
Go
151 lines
4.1 KiB
Go
|
package mdbc
|
||
|
|
||
|
//func TestTransaction(t *testing.T) {
|
||
|
// cfg := &Config{
|
||
|
// URI: "mongodb://10.0.0.135:27117/mdbc",
|
||
|
// MinPoolSize: 32,
|
||
|
// ConnTimeout: 10,
|
||
|
// }
|
||
|
// cfg.RegistryBuilder = RegisterTimestampCodec(nil)
|
||
|
// client, err := ConnInit(cfg)
|
||
|
//
|
||
|
// if err != nil {
|
||
|
// logrus.Fatalf("get err: %+v", err)
|
||
|
// }
|
||
|
// var m = NewModel(&ModelWsConnectRecord{})
|
||
|
//
|
||
|
// ctx := context.Background()
|
||
|
//
|
||
|
// cli := client.Client
|
||
|
// stx, err := cli.StartSession()
|
||
|
// if err != nil {
|
||
|
// panic(err)
|
||
|
// }
|
||
|
//
|
||
|
// // ef6e39c011ee4ed8bd0f82efb0fbccee
|
||
|
// // 80a850d0d8584668b89809e1308a9878
|
||
|
// // 457188bf227341e5a4a6c3d0242d425a
|
||
|
// _, uuid := stx.ID().Lookup("id").Binary()
|
||
|
// logrus.Infof("id: %+v", hex.EncodeToString(uuid))
|
||
|
//
|
||
|
// col := client.Database("mdbc").Collection(m.GetTableName())
|
||
|
//
|
||
|
// if err := stx.StartTransaction(); err != nil {
|
||
|
// panic(err)
|
||
|
// }
|
||
|
//
|
||
|
// logrus.Infof("id: %+v", stx.ID().Lookup("id").String())
|
||
|
//
|
||
|
// err = mongo.WithSession(ctx, stx, func(tx mongo.SessionContext) error {
|
||
|
// logrus.Infof("id: %+v", tx.ID())
|
||
|
// var record ModelWsConnectRecord
|
||
|
// if err := col.FindOne(tx, bson.M{"_id": "87c9c841b078bd213c79b682ffbdbec7"}).Decode(&record); err != nil {
|
||
|
// logrus.Errorf("err: %+v", err)
|
||
|
// panic(err)
|
||
|
// }
|
||
|
//
|
||
|
// logrus.Infof("record: %+v", &record)
|
||
|
//
|
||
|
// record.BindId = "myidsssssssssss"
|
||
|
// if err := col.FindOneAndUpdate(tx, bson.M{"_id": "87c9c841b078bd213c79b682ffbdbec7"}, bson.M{
|
||
|
// "$set": &record,
|
||
|
// }).Err(); err != nil {
|
||
|
// if err := stx.AbortTransaction(tx); err != nil {
|
||
|
// panic(err)
|
||
|
// }
|
||
|
//
|
||
|
// return err
|
||
|
// }
|
||
|
//
|
||
|
// if err := stx.CommitTransaction(tx); err != nil {
|
||
|
// panic(err)
|
||
|
// }
|
||
|
//
|
||
|
// logrus.Infof("id: %+v", tx.ID().Lookup("id").String())
|
||
|
//
|
||
|
// return nil
|
||
|
// })
|
||
|
//
|
||
|
// if err != nil {
|
||
|
// panic(err)
|
||
|
// }
|
||
|
//
|
||
|
// stx.EndSession(ctx)
|
||
|
//}
|
||
|
//
|
||
|
//func TestNewTransaction(t *testing.T) {
|
||
|
// cfg := &Config{
|
||
|
// URI: "mongodb://mdbc:mdbc@10.0.0.135:27117/mdbc",
|
||
|
// MinPoolSize: 32,
|
||
|
// ConnTimeout: 10,
|
||
|
// }
|
||
|
// cfg.RegistryBuilder = RegisterTimestampCodec(nil)
|
||
|
// client, err := ConnInit(cfg)
|
||
|
// client.Database("")
|
||
|
//
|
||
|
// if err != nil {
|
||
|
// logrus.Fatalf("get err: %+v", err)
|
||
|
// }
|
||
|
// var m = NewModel(&ModelWsConnectRecord{})
|
||
|
//
|
||
|
// err = m.Transaction().StartSession().AddHook(&OpentracingHook{}).RollbackOnError(func(tx *TransactionScope) error {
|
||
|
// ctx := tx.getSessionContext()
|
||
|
// coll := tx.scope
|
||
|
// var record ModelWsConnectRecord
|
||
|
// if err := coll.FindOne().SetContext(ctx).SetFilter(bson.M{"_id": "d1ef466f75b9a03256a8c2a3da0409a3"}).Get(&record); err != nil {
|
||
|
// logrus.Errorf("update err: %+v", err)
|
||
|
// return err
|
||
|
// }
|
||
|
// record.BindId = uuid.New().String()
|
||
|
// logrus.Infof("bind_id: %+v", record.BindId)
|
||
|
// if _, err := coll.Update().SetID("d1ef466f75b9a03256a8c2a3da0409a3").One(&record); err != nil {
|
||
|
// logrus.Errorf("update err: %+v", err)
|
||
|
// return err
|
||
|
// }
|
||
|
// return nil
|
||
|
// })
|
||
|
// if err != nil {
|
||
|
// panic(err)
|
||
|
// }
|
||
|
//
|
||
|
// time.Sleep(3 * time.Second)
|
||
|
//}
|
||
|
//
|
||
|
//func TestNewWithTransaction(t *testing.T) {
|
||
|
// cfg := &Config{
|
||
|
// URI: "mongodb://10.0.0.135:27117/mdbc",
|
||
|
// MinPoolSize: 32,
|
||
|
// ConnTimeout: 10,
|
||
|
// }
|
||
|
// cfg.RegistryBuilder = RegisterTimestampCodec(nil)
|
||
|
// client, err := ConnInit(cfg)
|
||
|
// client.Database("")
|
||
|
//
|
||
|
// if err != nil {
|
||
|
// logrus.Fatalf("get err: %+v", err)
|
||
|
// }
|
||
|
// var m = NewModel(&ModelWsConnectRecord{})
|
||
|
// err = m.Transaction().SetContext(context.Background()).StartSession().SingleRollbackOnError(func(tx *TransactionScope) error {
|
||
|
// ctx := tx.getSessionContext()
|
||
|
// coll := tx.scope
|
||
|
// var record ModelWsConnectRecord
|
||
|
// if err := coll.FindOne().SetContext(ctx).SetFilter(bson.M{"_id": "697022b263e2c1528f32a26e704e63d6"}).Get(&record); err != nil {
|
||
|
// logrus.Errorf("get err: %+v", err)
|
||
|
// return err
|
||
|
// }
|
||
|
// record.BindId = uuid.New().String()
|
||
|
// logrus.Infof("bind_id: %+v", record.BindId)
|
||
|
// if res, err := coll.Update().SetContext(ctx).SetID("697022b263e2c1528f32a26e704e63d6").One(&record); err != nil {
|
||
|
// logrus.Errorf("update err: %+v", err)
|
||
|
// return err
|
||
|
// } else if res.MatchedCount != 2 {
|
||
|
// //return errors.New("no match")
|
||
|
// return nil
|
||
|
// }
|
||
|
// return nil
|
||
|
// }).CloseSession().Error()
|
||
|
// if err != nil {
|
||
|
// panic(err)
|
||
|
// }
|
||
|
//}
|