use util/retry instead of wait fork directly

This commit is contained in:
2022-12-16 14:21:11 +02:00
parent e73c30689c
commit 0f33c8a544
9 changed files with 144 additions and 57 deletions

View File

@@ -12,6 +12,7 @@ import (
"git.k-space.ee/k-space/logmower-shipper/pkg/lines"
m "git.k-space.ee/k-space/logmower-shipper/pkg/mongo"
"git.k-space.ee/k-space/logmower-shipper/pkg/sender"
"github.com/jtagcat/util/retry"
"github.com/jtagcat/util/std"
"github.com/jtagcat/util/tail"
"go.mongodb.org/mongo-driver/bson"
@@ -39,17 +40,14 @@ type File struct {
// TODO: caller could call duplicate shipFile of same name on file replace: sends might not work properly
func (f File) Process(ctx context.Context, db *mongo.Collection) {
_ = wait.ManagedExponentialBackoffWithContext(ctx, backoff(), func() (done bool, _ error) {
_ = retry.OnErrorManagedBackoff(ctx, backoff(), func() (retryable bool, _ error) {
err := f.process(ctx, db)
if err == nil {
return true, nil
if err != nil {
promFileErr.WithLabelValues(f.MetricsName).Add(1)
log.Printf("processing file %q: %e", f.MetricsName, err)
}
promFileErr.WithLabelValues(f.MetricsName).Add(1)
log.Printf("processing file %q: %e", f.MetricsName, err)
// nil: loop and keep retrying indefinitely
return false, nil
return true, err
})
}