optimize scheduler to reduce memory allocations

This commit is contained in:
Andre Medeiros 2022-05-23 18:43:53 -04:00
parent b6c7c58062
commit f41dd925e4

View file

@ -21,7 +21,7 @@ import (
"github.com/christianselig/apollo-backend/internal/repository" "github.com/christianselig/apollo-backend/internal/repository"
) )
const batchSize = 250 const batchSize = 1000
func SchedulerCmd(ctx context.Context) *cobra.Command { func SchedulerCmd(ctx context.Context) *cobra.Command {
cmd := &cobra.Command{ cmd := &cobra.Command{
@ -203,7 +203,7 @@ func enqueueUsers(ctx context.Context, logger *zap.Logger, statsd *statsd.Client
now := time.Now() now := time.Now()
next := now.Add(domain.NotificationCheckInterval) next := now.Add(domain.NotificationCheckInterval)
ids := []int64{} var ids []int64
defer func() { defer func() {
tags := []string{"queue:users"} tags := []string{"queue:users"}
@ -229,11 +229,16 @@ func enqueueUsers(ctx context.Context, logger *zap.Logger, statsd *statsd.Client
return err return err
} }
defer rows.Close() defer rows.Close()
for rows.Next() {
affected := rows.CommandTag().RowsAffected()
ids = make([]int64, affected)
var id int64 var id int64
for i := 0; rows.Next(); i++ {
_ = rows.Scan(&id) _ = rows.Scan(&id)
ids = append(ids, id) ids[i] = id
} }
return nil return nil
}) })
@ -383,7 +388,7 @@ func enqueueAccounts(ctx context.Context, logger *zap.Logger, statsd *statsd.Cli
now := time.Now() now := time.Now()
next := now.Add(domain.NotificationCheckInterval) next := now.Add(domain.NotificationCheckInterval)
ids := []int64{} var ids []int64
enqueued := 0 enqueued := 0
skipped := 0 skipped := 0
@ -412,10 +417,15 @@ func enqueueAccounts(ctx context.Context, logger *zap.Logger, statsd *statsd.Cli
return err return err
} }
defer rows.Close() defer rows.Close()
for rows.Next() {
affected := rows.CommandTag().RowsAffected()
ids = make([]int64, affected)
var id int64 var id int64
for i := 0; rows.Next(); i++ {
_ = rows.Scan(&id) _ = rows.Scan(&id)
ids = append(ids, id) ids[i] = id
i++
} }
return nil return nil
}) })