Documentation
¶
Index ¶
- type AcquireFunc
- type AvailableFunc
- type Pool
- func (p *Pool[Resource]) Acquire(ctx context.Context) (resource Resource, err error)
- func (p *Pool[Resource]) Close(ctx context.Context) error
- func (p *Pool[Resource]) Release(ctx context.Context, resource Resource) error
- func (p *Pool[Resource]) Status() Status
- func (p *Pool[Resource]) WithAvailableFunc(available AvailableFunc[Resource]) *Pool[Resource]
- func (p *Pool[Resource]) WithPoolClosedErrFunc(newClosedErr PoolClosedErrFunc) *Pool[Resource]
- type PoolClosedErrFunc
- type ReleaseFunc
- type Status
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type AcquireFunc ¶
AcquireFunc is a function acquires a new resource and returns error if failed.
type AvailableFunc ¶ added in v0.4.1
AvailableFunc is a function checks if a resource is available.
type Pool ¶
type Pool[Resource any] struct { // contains filtered or unexported fields }
Pool stores some resources and you can reuse them.
func New ¶
func New[Resource any](limit uint64, acquire AcquireFunc[Resource], release ReleaseFunc[Resource]) *Pool[Resource]
New returns a new pool with limit resources. All resources are acquired by acquire function and released by release function.
func (*Pool[Resource]) Acquire ¶ added in v0.4.1
Acquire acquires a resource from pool and returns an error if failed. You should call Pool.Release to return the resource back to the pool.
func (*Pool[Resource]) Release ¶ added in v0.4.1
Release releases a resource to pool so we can reuse it next time.
func (*Pool[Resource]) WithAvailableFunc ¶ added in v0.4.1
func (p *Pool[Resource]) WithAvailableFunc(available AvailableFunc[Resource]) *Pool[Resource]
func (*Pool[Resource]) WithPoolClosedErrFunc ¶ added in v0.4.1
func (p *Pool[Resource]) WithPoolClosedErrFunc(newClosedErr PoolClosedErrFunc) *Pool[Resource]
type PoolClosedErrFunc ¶ added in v0.4.1
PoolClosedErrFunc is a function returns a pool closed error.
type ReleaseFunc ¶
ReleaseFunc is a function releases a resource and returns error if failed.
type Status ¶
type Status struct {
// Limit is the maximum quantity of resources in pool.
Limit uint64 `json:"limit"`
// Using is the quantity of using resources in pool.
Using uint64 `json:"using"`
// Idle is the quantity of idle resources in pool.
Idle uint64 `json:"idle"`
// Waiting is the quantity of caller waiting for a resource.
Waiting uint64 `json:"waiting"`
// WaitDuration is the average duration waiting a resource.
WaitDuration time.Duration `json:"wait_duration"`
}
Status includes some statistics of the pool.