Pacote de mecanismo de repetição simples e fácil para Go

Tentar novamente

Pacote de mecanismo de repetição simples e fácil para Go

Instalação

Instale o pacote usando
go $ go get github.com/thedevsaddam/retry

Uso

Para usar o pacote importe-o em seu *.gocódigo
go import "github.com/thedevsaddam/retry"

Exemplo

Basta repetir uma função para executar no máximo 10 vezes com intervalo de 1 segundo


package main

import (
"fmt"
"time"

"github.com/thedevsaddam/retry"
)

func main
() {
i
:= 1 // lets assume we expect i to be a value of 8
err
:= retry.DoFunc(10, 1*time.Second, func() error {
fmt
.Printf("trying for: %dth timen", i)
i
++
if i > 7 {
return nil
}
return fmt.Errorf("i = %d is still low value", i)
})

if err != nil {
panic
(err)
}

fmt
.Println("Got our expected result: ", i)
}

Podemos executar funções de outro pacote com argumentos e valores de retorno


package main

import (
"errors"
"log"
"time"

"github.com/thedevsaddam/retry"
)

func div
(a, b float64) (float64, error) {
if b == 0 {
return 0, errors.New("Can not divide by zero")
}
return a / b, nil
}

func main
() {
a
:= 20.6
b
:= 3.7 // if we assign 0.0 to b, it will cause an error and will retry for 3 times
res
, err := retry.Do(3, 5*time.Second, div, a, b)
if err != nil {
panic
(err)
}
log
.Println(res[0].Interface(), res[1].Interface())
}

Licença

A nova tentativa é um software de código aberto licenciado sob a Licença MIT .