client

package
v0.3.0 Latest Latest
Warning

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

Go to latest
Published: Sep 11, 2019 License: MIT Imports: 7 Imported by: 0

Documentation

Index

Constants

View Source
const (
	DefaultMinTimeOut = 500 * time.Millisecond
	DefaultMaxTimeOut = time.Second
)

* help function to build default function

View Source
const (
	MiddleNameWaitRetry = "wait-to-retry"
)

Variables

View Source
var ErrGetResource = errors.New("get resource err")
View Source
var ErrResourceAbnormal = errors.New("get resource abnormal")

Functions

This section is empty.

Types

type Action

type Action struct {
	Partition    bool
	PartitionKey int
	Do           func(ctx context.Context, resource *Resource) error
	Recover      func(ctx context.Context, resource *Resource, err error) (wait time.Duration, ok bool)
	HandleFail   func(ctx context.Context, err error)
	MaxTimeOut   time.Duration // zero is useless
	MinTimeOut   time.Duration // zero is useless
}

func DefaultAction

func DefaultAction(do func(ctx context.Context, resource *Resource) error) Action

type Client

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

func New

func New(promisePool *promise.Pool, resourcePool ResourcePool) *Client

func (*Client) Do

func (manager *Client) Do(ctx context.Context, action Action) ExecuteResult

type DoOption

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

type ExecuteResult

type ExecuteResult struct {
	Try     int
	Recover int
	Err     error
}

type Refresher

type Refresher func(last interface{}) (new interface{}, err error)

type Resource

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

func NewResource

func NewResource(recycle func(abnormal bool), v interface{}) *Resource

func (*Resource) Get

func (res *Resource) Get() interface{}

func (*Resource) Live

func (res *Resource) Live() bool

func (*Resource) PutBack

func (res *Resource) PutBack(abnormal bool)

type ResourcePool

type ResourcePool interface {
	Get(ctx context.Context, partition bool, partitionKey int) (*Resource, error)
}

func NewMemoryPool

func NewMemoryPool(count int, refresher Refresher, config breaker.StatusConfig) ResourcePool

Jump to

Keyboard shortcuts

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