2018-06-05 03:07:58 +00:00
|
|
|
package ddb
|
|
|
|
|
|
|
|
|
|
import (
|
2021-09-22 05:00:14 +00:00
|
|
|
"github.com/aws/aws-sdk-go-v2/service/dynamodb/types"
|
2018-06-05 03:07:58 +00:00
|
|
|
)
|
|
|
|
|
|
|
|
|
|
// Retryer interface contains one method that decides whether to retry based on error
|
|
|
|
|
type Retryer interface {
|
|
|
|
|
ShouldRetry(error) bool
|
|
|
|
|
}
|
|
|
|
|
|
2019-09-01 01:43:26 +00:00
|
|
|
// DefaultRetryer .
|
2018-06-05 03:07:58 +00:00
|
|
|
type DefaultRetryer struct {
|
|
|
|
|
Retryer
|
|
|
|
|
}
|
|
|
|
|
|
2019-09-01 01:43:26 +00:00
|
|
|
// ShouldRetry when error occured
|
2018-06-05 03:07:58 +00:00
|
|
|
func (r *DefaultRetryer) ShouldRetry(err error) bool {
|
2021-09-22 05:00:14 +00:00
|
|
|
switch err.(type) {
|
|
|
|
|
case *types.ProvisionedThroughputExceededException:
|
|
|
|
|
return true
|
2018-06-05 03:07:58 +00:00
|
|
|
}
|
|
|
|
|
return false
|
|
|
|
|
}
|