Documentation ¶
Overview ¶
Package retry is for executing a function repeatedly until it was successful or canceled by the context.
Index ¶
Examples ¶
Constants ¶
View Source
const ( // DefaultRetryTimes times of retry DefaultRetryTimes = 5 // DefaultRetryDuration time duration of two retries DefaultRetryDuration = time.Second * 3 )
Variables ¶
This section is empty.
Functions ¶
func Retry ¶
Retry executes the retryFunc repeatedly until it was successful or canceled by the context The default times of retries is 5 and the default duration between retries is 3 seconds. Play: https://go.dev/play/p/nk2XRmagfVF
Example ¶
number := 0 increaseNumber := func() error { number++ if number == 3 { return nil } return errors.New("error occurs") } err := Retry(increaseNumber, RetryDuration(time.Microsecond*50)) if err != nil { return } fmt.Println(number)
Output: 3
Types ¶
type Option ¶
type Option func(*RetryConfig)
Option is for adding retry config
func Context ¶
Context set retry context config. Play: https://go.dev/play/p/xnAOOXv9GkS
Example ¶
ctx, cancel := context.WithCancel(context.TODO()) number := 0 increaseNumber := func() error { number++ if number > 3 { cancel() } return errors.New("error occurs") } Retry(increaseNumber, RetryDuration(time.Microsecond*50), Context(ctx), ) fmt.Println(number)
Output: 4
func RetryDuration ¶
RetryDuration set duration of retries. Play: https://go.dev/play/p/nk2XRmagfVF
Example ¶
number := 0 increaseNumber := func() error { number++ if number == 3 { return nil } return errors.New("error occurs") } err := Retry(increaseNumber, RetryDuration(time.Microsecond*50)) if err != nil { return } fmt.Println(number)
Output: 3
func RetryTimes ¶
RetryTimes set times of retry. Play: https://go.dev/play/p/ssfVeU2SwLO
Example ¶
number := 0 increaseNumber := func() error { number++ if number == 3 { return nil } return errors.New("error occurs") } err := Retry(increaseNumber, RetryTimes(2)) if err != nil { fmt.Println(err) }
Output: function retry.ExampleRetryTimes.func1 run failed after 2 times retry
type RetryConfig ¶
type RetryConfig struct {
// contains filtered or unexported fields
}
RetryConfig is config for retry
Click to show internal directories.
Click to hide internal directories.