diff --git a/go.mod b/go.mod index 28bf0e5..436a370 100644 --- a/go.mod +++ b/go.mod @@ -19,3 +19,5 @@ require ( google.golang.org/appengine v1.6.1 // indirect gopkg.in/redis.v5 v5.2.9 // indirect ) + +go 1.13 diff --git a/store/ddb/ddb.go b/store/ddb/ddb.go index dea0d86..26ab3b0 100644 --- a/store/ddb/ddb.go +++ b/store/ddb/ddb.go @@ -39,12 +39,10 @@ func WithRetryer(r Retryer) Option { // New returns a checkpoint that uses DynamoDB for underlying storage func New(appName, tableName string, opts ...Option) (*Checkpoint, error) { - client := dynamodb.New(session.New(aws.NewConfig())) ck := &Checkpoint{ tableName: tableName, appName: appName, - client: client, maxInterval: time.Duration(1 * time.Minute), done: make(chan struct{}), mu: &sync.Mutex{}, @@ -56,6 +54,15 @@ func New(appName, tableName string, opts ...Option) (*Checkpoint, error) { opt(ck) } + // default client + if ck.client == nil { + newSession, err := session.NewSession(aws.NewConfig()) + if err != nil { + return nil, err + } + ck.client = dynamodb.New(newSession) + } + go ck.loop() return ck, nil