pool

package
v1.8.3 Latest Latest
Warning

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

Go to latest
Published: Sep 16, 2020 License: Apache-2.0 Imports: 9 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type Connect

type Connect func(string) (Connection, error)

type Connection

type Connection interface {
	ServerName() string
	IsAlive() bool
	Reset()
	Close()
	Birthdate() time.Time
}

type Pool

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

func New

func New(maxSize int, maxAge time.Duration, connect Connect, log log.Logger) *Pool

func (*Pool) Borrow

func (p *Pool) Borrow(ctx context.Context, serverNames []string, wait bool) (Connection, error)

Borrow tries to borrow an existing database connection or tries to create a new one if none exists. The wait flag indicates if the caller wants to wait for a connection to be returned if there aren't any idle connection available.

func (*Pool) CleanUp

func (p *Pool) CleanUp()

Prune all old connection on all the servers, this makes sure that servers gets removed from the map at some point in time. If there is a noticed failed connect still active we should wait a while with removal to get prioritization right.

func (*Pool) Close

func (p *Pool) Close()

func (*Pool) Return

func (p *Pool) Return(c Connection)

type PoolClosed

type PoolClosed struct {
}

func (*PoolClosed) Error

func (e *PoolClosed) Error() string

type PoolFull

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

func (*PoolFull) Error

func (e *PoolFull) Error() string

type PoolTimeout

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

func (*PoolTimeout) Error

func (e *PoolTimeout) Error() string

Jump to

Keyboard shortcuts

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