callopt

package
v0.4.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Aug 26, 2022 License: Apache-2.0 Imports: 12 Imported by: 954

Documentation

Overview

Package callopt contains options that control the behavior of client on request level.

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type CallOptions added in v0.4.0

type CallOptions struct {

	// export field for using in client
	RetryPolicy retry.Policy
	// contains filtered or unexported fields
}

func Apply

func Apply(cos []Option, cfg rpcinfo.MutableRPCConfig, svr remoteinfo.RemoteInfo, locks *client.ConfigLocks, httpResolver http.Resolver) (string, *CallOptions)

Apply applies call options to the rpcinfo.RPCConfig and internal.RemoteInfo of kitex client. The return value records the name and arguments of each option. This function is for internal purpose only.

func (*CallOptions) Recycle added in v0.4.0

func (co *CallOptions) Recycle()

Recycle zeros the call option and put it to the pool.

type Option

type Option struct {
	// contains filtered or unexported fields
}

Option is a series of options used at the beginning of a RPC call.

func WithConnectTimeout

func WithConnectTimeout(d time.Duration) Option

WithConnectTimeout specifies the connection timeout for a RPC call.

func WithHTTPHost

func WithHTTPHost(host string) Option

WithHTTPHost specifies host in http header(work when RPC over http).

func WithHostPort

func WithHostPort(hostport string) Option

WithHostPort specifies the target address for a RPC call. The given address will overwrite the result from Resolver.

func WithRPCTimeout

func WithRPCTimeout(d time.Duration) Option

WithRPCTimeout specifies the RPC timeout for a RPC call. FIXME: callopt.WithRPCTimeout works only when client.WithRPCTimeout or client.WithTimeoutProvider is specified.

func WithRetryPolicy added in v0.4.0

func WithRetryPolicy(p retry.Policy) Option

WithRetryPolicy sets the retry policy for a RPC call. Build retry.Policy with retry.BuildFailurePolicy or retry.BuildBackupRequest instead of building retry.Policy directly. Below is use demo, eg:

  demo1. call with failure retry policy, default retry error is Timeout
  	resp, err := cli.Mock(ctx, req, callopt.WithRetryPolicy(retry.BuildFailurePolicy(retry.NewFailurePolicy())))
  demo2. call with backup request policy
  	bp := retry.NewBackupPolicy(10)
	 	bp.WithMaxRetryTimes(1)
  	resp, err := cli.Mock(ctx, req, callopt.WithRetryPolicy(retry.BuildBackupRequest(bp)))

func WithTag

func WithTag(key, val string) Option

WithTag sets the tags for service discovery for a RPC call.

func WithURL

func WithURL(url string) Option

WithURL specifies the target for a RPC call with url. The given url will be resolved to hostport and overwrites the result from Resolver.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL