From 2f5c6b67ff671e94700f526e3432beb2a426ce2e Mon Sep 17 00:00:00 2001 From: arkiver Date: Sun, 19 Feb 2023 14:00:17 +0100 Subject: [PATCH] Attempt to write items to backfeed_retry set upon error. --- main.go | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/main.go b/main.go index 0bad402..aa3dacd 100644 --- a/main.go +++ b/main.go @@ -169,14 +169,30 @@ func (that *ProjectBackfeedManager) Do() { } resultMap[key] = pipe.Do(context.Background(), args...) } + var sAddErrItems []any if _, err := pipe.Exec(context.Background()); err != nil { log.Printf("%s", err) + for _, items := range keyMap { + for _, item := range items { + sAddErrItems = append(sAddErrItems, item) + } + } + if err := that.ProjectRedis.SAdd(context.Background(), fmt.Sprintf("%s:backfeed_retry", that.Name), sAddErrItems...).Err(); err != nil { + log.Printf("failed to sadd failed items for %s: %s", that.Name, err) + } + continue } var sAddItems []any for key, items := range keyMap { res, err := resultMap[key].BoolSlice() if err != nil { log.Printf("%s", err) + for _, item := range items { + sAddErrItems = append(sAddErrItems, item) + } + if err := that.ProjectRedis.SAdd(context.Background(), fmt.Sprintf("%s:backfeed_retry", that.Name), sAddErrItems...).Err(); err != nil { + log.Printf("failed to sadd failed items for %s: %s", that.Name, err) + } continue } if len(res) != len(keyMap[key]) {