23 lines
396 B
Go
23 lines
396 B
Go
package service
|
|
|
|
import (
|
|
"fmt"
|
|
"time"
|
|
)
|
|
|
|
func RetryOperation(maxRetries int, delay time.Duration, operation func() error) error {
|
|
var err error
|
|
for i := 0; i <= maxRetries; i++ {
|
|
err = operation()
|
|
if err == nil {
|
|
return nil
|
|
}
|
|
fmt.Printf("Error encountered: %v\n", err)
|
|
if i < maxRetries {
|
|
fmt.Printf("Retrying after %v...\n", delay)
|
|
time.Sleep(delay)
|
|
}
|
|
}
|
|
return err
|
|
}
|