问题描述
ctx1 := context.Background()
ctx2,cancel2 := context.WithCancel(context.Background())
ctx3,cancel3 := context.WithCancel(context.Background())
db,_ := sqlx.Connect("postgres",dataSrc)
tx,_ := db.BeginTxx(ctx1,nil)
tx.ExecContext(ctx2,someArgs...)
tx.ExecContext(ctx3,someArgs...)
cancel3() // ? Will the entire transaction fail? Do I need to rollback?
从上面的代码片段可以看出。我有 3 个不同的上下文,我取消了第三个上下文。在这种情况下,会发生什么? cancel3()
会导致整个交易失败吗?或者只是那个特定的 Exec
调用失败?我需要回滚吗?
如果我们像这样改变顺序会发生什么:
ctx1 := context.Background()
ctx2,someArgs...)
cancel2() // cancel the 2nd one instead
我似乎找不到任何关于此的文档。
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)