From aad2434d83af8a63f05ce939584d6b748f8b5a99 Mon Sep 17 00:00:00 2001 From: Andre Medeiros Date: Thu, 8 Jul 2021 20:26:01 -0400 Subject: [PATCH] fix skipped accounts and locks --- cmd/apollo-scheduler/main.go | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) diff --git a/cmd/apollo-scheduler/main.go b/cmd/apollo-scheduler/main.go index 831f466..d72488e 100644 --- a/cmd/apollo-scheduler/main.go +++ b/cmd/apollo-scheduler/main.go @@ -150,17 +150,27 @@ func enqueueAccounts(ctx context.Context, logger *logrus.Logger, pool *pgxpool.P }).Debug("enqueueing account batch") enqueued := 0 + skipped := 0 for _, id := range ids { payload := fmt.Sprintf("%d", id) - if redisConn.HGet(ctx, "locks:accounts", payload).Val() != "" { + if _, err := redisConn.HGet(ctx, "locks:accounts", payload).Result(); err != redis.Nil { + skipped++ continue } + + if err := redisConn.HSet(ctx, "locks:accounts", payload, true).Err(); err != nil { + logger.WithFields(logrus.Fields{ + "err": err, + }).Error("failed to lock account") + } + enqueued++ _ = queue.Publish(payload) } logger.WithFields(logrus.Fields{ - "count": enqueued, + "count": enqueued, + "skipped": skipped, }).Info("done enqueueing account batch") }