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.