tcp

package
v2.2.0+incompatible Latest Latest
Warning

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

Go to latest
Published: Apr 30, 2019 License: MIT Imports: 2 Imported by: 0

Documentation

Overview

Package tcp provides the WaitTCPEndpoint function to wait until a TCP endpoint can be reached.

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type WaitConfig

type WaitConfig struct {

	// Address is the TCP address to try to reach ("host:port", e.g.
	// "localhost:5432", "golang.org:http").
	Address string

	// Interval is the time to wait after a failed attempt before retrying. It is
	// only used if Retries is set.
	Interval time.Duration

	// OnAttempt is a function that will be called each time an attempt is made to
	// reach the TCP endpoint.  It may be called several times if you specified
	// Retries and a number of calls fail.
	//
	// The function is called with the index of the attempt and the waiting
	// configuration. The third err argument is nil if all goes well, but in the
	// case of a retry, it may contain the error that caused the previous call to
	// fail.
	OnAttempt func(attempt uint64, config *WaitConfig, err *error)

	// Retries indicates how many times to attempt to reach the TCP endpoint again
	// if the first attempt fails. The wait is considered successful as soon as
	// one attempt succeeds, regardless of previous failures.
	Retries uint64

	// Timeout indicates the maximum time to wait to establish the TCP connection
	// on each attempt.  If it takes longer, the call will time out and the
	// attempt will fail.
	Timeout time.Duration
}

WaitConfig is the configuration to wait for a TCP endpoint to be reachable. It is used to specify the address to call and retry behavior.

type WaitResult

type WaitResult struct {

	// Attempts indicates how many attempts were made to reach the endpoint.  It
	// will be 1 by default but may be more if you specified Retries and some
	// calls failed.
	Attempts uint64

	// Connection is the TCP connection that was established.
	Connection net.Conn

	// Duration indicates how much time it took to reach the endpoint.
	Duration time.Duration

	// Error will be nil if the endpoint has been reached, or it will contain the
	// net.OpError that caused the TCP call to fail.
	Error error

	// Success indicates whether the endpoint could be reached (the first time or
	// on a subsequent retry attempt).
	Success bool
}

WaitResult is the result of waiting to reach a TCP endpoint. Its Success property indicates whether the endpoint was reached.

func WaitTCPEndpoint

func WaitTCPEndpoint(config *WaitConfig) (*WaitResult, error)

WaitTCPEndpoint tries to reach the configured TCP endpoint, returning either a WaitResult if it worked, or an error if the endpoint could not be reached.

Jump to

Keyboard shortcuts

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