dtm icon indicating copy to clipboard operation
dtm copied to clipboard

workflowServier 的Execute函数无法传递上下文给下游

Open hzautpy opened this issue 1 year ago • 1 comments

func (s *workflowServer) Execute(ctx context.Context, wd *wfpb.WorkflowData) (*emptypb.Empty, error) {
	if defaultFac.protocol != dtmimp.ProtocolGRPC {
		return nil, status.Errorf(codes.Internal, "workflow server not inited. please call workflow.InitGrpc first")
	}
	tb := dtmgimp.TransBaseFromGrpc(ctx)
	_, err := defaultFac.execute(tb.Op, tb.Gid, wd.Data)
	return &emptypb.Empty{}, dtmgrpc.DtmError2GrpcError(err)
}

func TransBaseFromGrpc(ctx context.Context) *dtmimp.TransBase {
	md, _ := metadata.FromIncomingContext(ctx)
	tb := dtmimp.NewTransBase(dtmGet(md, "gid"), dtmGet(md, "trans_type"), dtmGet(md, "dtm"), dtmGet(md, "branch_id"))
	tb.Op = dtmGet(md, "op")
	return tb
}

defaultFac.execute(tb.Op, tb.Gid, wd.Data) 执行回调的时候,链路追踪丢失了,现在只能取巧把上下文信息放到data里面

hzautpy avatar Dec 07 '24 12:12 hzautpy

能否发个PR?

yedf2 avatar Feb 04 '25 11:02 yedf2