Comments (5)
欢迎PR
from dtm.
今天在测试dtm workflow
发现有两个办法可以带trace id
一、NewRequest().SetHeader
二、Do() 自定义处理
from dtm.
具体是怎么操作啊,能贴上示例代码不
from dtm.
@jorahbi
拿worflow来说,可以这么干:
workflow.Register("step", func(wf *workflow.Workflow, data []byte) error {
var req Request
err := json.Unmarshal(data, &req)
if err != nil {
fmt.Println(err)
return nil
}
traceID := req.TraceID
_, err = wf.NewBranch().OnRollback(func(bb *dtmcli.BranchBarrier) error {
_, err = wf.NewRequest().SetHeader("Trace-Id", traceID).SetBody(...).Post("http://127.0.0.1:29091/step1_rollback")
return err
}).NewRequest().SetHeader("Trace-Id", traceID).SetBody(...).Post("http://127.0.0.1:29091/step1")
if err != nil {
return err
}
... ...
return nil
})
from dtm.
我今天也遇到这个问题了。昨天升级了dtm,返现saga事务传递的traceid会被修改。以下是我的代码
// 扣产品库存事务
decreaseProductReq := &productPBV1.DecreaseStockRequest{}
decreaseProductReq.Quantity = 1
decreaseProductReq.Id = request.ProductId
productDecreaseStock := "product.rgrpc-dev:50051/proto.product.v1.ProductService/DecreaseStock"
productDecreaseStockRevert := "product.rgrpc-dev:50051/proto.product.v1.ProductService/DecreaseStockRevert"
// 创建订单事务
orderNo := uuid.NewString()
request.OrderNo = orderNo
createOrder := "order.rgrpc-dev:50051/proto.order.v1.OrderService/Create"
createOrderRevert := "order.rgrpc-dev:50051/proto.order.v1.OrderService/CreateRevert"
saga := dtmgrpc.NewSagaGrpc("dtm-svc.dtm:36790", uuid.NewString())
saga.Add(createOrder, createOrderRevert, request)
saga.Add(productDecreaseStock, productDecreaseStockRevert, decreaseProductReq)
saga.WaitResult = true
if err := saga.Submit(); err != nil {
_ = level.Error(s.logger).Log("msg", "创建订单失败,错误:"+err.Error())
return nil, status.Error(codes.Aborted, "创建订单失败")
}
return &emptypb.Empty{}, nil
有大佬知道怎么处理的吗。没升级之前都好好的。升级了就不行了。
from dtm.
Related Issues (20)
- Is there an error in the official documentation? HOT 1
- Does dtm support starting multiple pods to run?
- timeout_to_fail=999999 但 dtm报错Client.Timeout exceeded while awaiting headers
- XA事务使用demo测试显示submit成功了,mysql中实际并没有提交事务 HOT 1
- 有没有接入polaris的demo HOT 1
- C#客户端 saga执行事务时,demo设置了延时超过2秒之后,事务状态并没有更改为成功,反复重试 HOT 1
- The sql for creating the TDSql table is incorrect
- http_workflow_tcc_barrier 某种异常情况下,子事务 rollback 之后又会走到 commit 步骤 HOT 26
- 关于异常信息的传递 HOT 5
- dtm真有管理后台? HOT 4
- 子事务屏障和幂等的问题?
- 能否将BranchBarrier中Call的提交和回滚提取出来 HOT 4
- clone run的时候出现的错误 HOT 5
- grpc_saga_passthroughHeaders 中间件设置header后接口中无法获取 HOT 5
- Can I provide a demo for accessing XA transactions in the go-zero framework HOT 1
- Azure MySQL SSL-mode requird
- XA全局事务成功后,DTM Admin 显示正常,但是本地数据库XA事务未提交,要修改的数据未变动,需要手动执行XA事务提交才生效 HOT 2
- Expect the Server to support SqlServer storage
- Lua not supported? HOT 1
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from dtm.