From 71f04afb8ae23427214bb41ec77ffb5b639d87cb Mon Sep 17 00:00:00 2001 From: Andre Medeiros Date: Tue, 20 Jul 2021 14:39:01 -0400 Subject: [PATCH] tweak scheduler to only run one enqueue at a time --- internal/cmd/scheduler.go | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/internal/cmd/scheduler.go b/internal/cmd/scheduler.go index ee54d2c..2b00cc8 100644 --- a/internal/cmd/scheduler.go +++ b/internal/cmd/scheduler.go @@ -67,7 +67,7 @@ func SchedulerCmd(ctx context.Context) *cobra.Command { } s := gocron.NewScheduler(time.UTC) - s.Every(1).Second().Do(func() { enqueueAccounts(ctx, logger, statsd, db, redis, luaSha, notifQueue) }) + s.Every(1).Second().SingletonMode().Do(func() { enqueueAccounts(ctx, logger, statsd, db, redis, luaSha, notifQueue) }) s.Every(1).Second().Do(func() { cleanQueues(ctx, logger, queue) }) s.Every(1).Minute().Do(func() { reportStats(ctx, logger, statsd, db, redis) }) s.Every(1).Minute().Do(func() { cleanAccounts(ctx, logger, db) }) @@ -209,6 +209,7 @@ func enqueueAccounts(ctx context.Context, logger *logrus.Logger, statsd *statsd. OR last_checked_at < $2 ORDER BY last_checked_at LIMIT 2000 + FOR UPDATE SKIP LOCKED ) UPDATE accounts SET last_enqueued_at = $3