Documentation ¶
Index ¶
- func TccTransaction(ctx context.Context, cli *GrpcClient, expire time.Time, ...) (*pb.TccResponse, error)
- func WithRetry(retry time.Duration) func(o *options)
- func WithTimeout(timeout time.Duration) func(o *options)
- type GrpcClient
- type HttpClient
- func (cli *HttpClient) Cancel(ctx context.Context, gtid string) (*define.TccResponse, error)
- func (cli *HttpClient) Confirm(ctx context.Context, gtid string) (*define.TccResponse, error)
- func (cli *HttpClient) Get(ctx context.Context, gtid string) (*define.TccResponse, error)
- func (cli *HttpClient) NewGtid(ctx context.Context) (string, error)
- func (cli *HttpClient) Prepare(ctx context.Context, req *define.TccRequest) (*define.TccResponse, error)
- func (cli *HttpClient) Register(ctx context.Context, gtid string, branch *define.TccBranch) (*define.TccResponse, error)
- type Transaction
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func TccTransaction ¶
func TccTransaction(ctx context.Context, cli *GrpcClient, expire time.Time, tryFunctions func(ctx context.Context, t *Transaction, gtid string) error) (*pb.TccResponse, error)
TccTransaction start a TCC transaction as a block,
return TccResponse and error, transaction is aborted if error is not nil, TccResponse describes states of TCC transaction
func WithTimeout ¶
WithTimeout set timeout duration
Types ¶
type GrpcClient ¶
GrpcClient is grpc client of TCC AP
func NewGrpcClient ¶
func NewGrpcClient(target string) (*GrpcClient, error)
NewGrpcClient create a grpc client
target is address of grpc server
type HttpClient ¶
type HttpClient struct {
TcServer string
}
HttpClient is http client of TCC AP
func (*HttpClient) Cancel ¶
func (cli *HttpClient) Cancel(ctx context.Context, gtid string) (*define.TccResponse, error)
Cancel rollback TCC transaction
func (*HttpClient) Confirm ¶
func (cli *HttpClient) Confirm(ctx context.Context, gtid string) (*define.TccResponse, error)
Confirm commit TCC transaction
func (*HttpClient) Get ¶
func (cli *HttpClient) Get(ctx context.Context, gtid string) (*define.TccResponse, error)
Get get states of saga transaction
func (*HttpClient) NewGtid ¶
func (cli *HttpClient) NewGtid(ctx context.Context) (string, error)
NewGtid create a unique identifier for transaction
func (*HttpClient) Prepare ¶
func (cli *HttpClient) Prepare(ctx context.Context, req *define.TccRequest) (*define.TccResponse, error)
Prepare prepare transaction
type Transaction ¶
type Transaction struct {
// contains filtered or unexported fields
}
Transaction A distributed TCC transaction
func (*Transaction) TryGrpc ¶
func (t *Transaction) TryGrpc(branchID int, conn *grpc.ClientConn, try string, confirm string, cancel string, request proto.Message, response interface{}, opts ...func(o *options)) (err error)
TryGrpc invoke try method of grpc server of RM to start a branch transaction.
branchID is unique identifier, ensure it is unique in a TCC transaction conn is grpc client connection of RM try is try method of grpc server confirm is confirm method of grpc server cancel is cancel method of grpc server request is request structure of try, confirm and cancel method response is response of try method opts set options of branch transaction
func (*Transaction) TryHttp ¶
func (t *Transaction) TryHttp(branchID int, try string, confirm string, cancel string, payload []byte, opts ...func(o *options)) ([]byte, error)
TryHttp invoke try method of http server of RM to start a branch transaction.
branchID is unique identifier, ensure it is unique in a TCC transaction try is try URL of http server confirm is confirm URL of http server cancel is cancel URL of http server request is request structure of try, confirm and cancel response is response of try opts set options of branch transaction
Click to show internal directories.
Click to hide internal directories.