From 0f70725be5d7390c47bd2df5e814958cf65cae17 Mon Sep 17 00:00:00 2001 From: Andre Medeiros Date: Thu, 8 Jul 2021 21:01:45 -0400 Subject: [PATCH] enqueue by batches --- cmd/apollo-scheduler/main.go | 15 ++++++++------- 1 file changed, 8 insertions(+), 7 deletions(-) diff --git a/cmd/apollo-scheduler/main.go b/cmd/apollo-scheduler/main.go index eb0e4bb..e9475e8 100644 --- a/cmd/apollo-scheduler/main.go +++ b/cmd/apollo-scheduler/main.go @@ -107,10 +107,8 @@ func main() { } func enqueueAccounts(ctx context.Context, logger *logrus.Logger, pool *pgxpool.Pool, redisConn *redis.Client, queue rmq.Queue) { - now := float64(time.Now().UnixNano()/int64(time.Millisecond)) / 1000 - - start := now - end := now + 1 + start := time.Now().Unix() + end := start + 1 ids := []int64{} @@ -119,10 +117,13 @@ func enqueueAccounts(ctx context.Context, logger *logrus.Logger, pool *pgxpool.P WITH account AS ( SELECT id FROM accounts - WHERE (last_checked_at + 5) BETWEEN $1 AND $2 - OR last_checked_at + 60 < $1 + WHERE + ( + (last_checked_at + 5) >= $1 AND + (last_checked_at + 5) < $2 + ) + OR last_checked_at + 60 < $1 ORDER BY last_checked_at - FOR UPDATE SKIP LOCKED ) UPDATE accounts SET last_enqueued_at = $1