From e46082949a679f8a12c9f92a00b2263f8d9ada92 Mon Sep 17 00:00:00 2001 From: Andre Medeiros Date: Thu, 15 Jul 2021 13:47:22 -0400 Subject: [PATCH] tweak pool args --- internal/cmd/api.go | 2 +- internal/cmd/scheduler.go | 2 +- internal/cmd/worker.go | 6 +++--- internal/cmdutil/cmdutil.go | 9 +++++++-- 4 files changed, 12 insertions(+), 7 deletions(-) diff --git a/internal/cmd/api.go b/internal/cmd/api.go index a7b4d47..d3a5c6e 100644 --- a/internal/cmd/api.go +++ b/internal/cmd/api.go @@ -32,7 +32,7 @@ func APICmd(ctx context.Context) *cobra.Command { } defer statsd.Close() - db, err := cmdutil.NewDatabasePool(ctx) + db, err := cmdutil.NewDatabasePool(ctx, 32) if err != nil { return err } diff --git a/internal/cmd/scheduler.go b/internal/cmd/scheduler.go index aeba7a6..4098a27 100644 --- a/internal/cmd/scheduler.go +++ b/internal/cmd/scheduler.go @@ -38,7 +38,7 @@ func SchedulerCmd(ctx context.Context) *cobra.Command { } defer statsd.Close() - db, err := cmdutil.NewDatabasePool(ctx) + db, err := cmdutil.NewDatabasePool(ctx, 32) if err != nil { return err } diff --git a/internal/cmd/worker.go b/internal/cmd/worker.go index fc13d5a..a34db2f 100644 --- a/internal/cmd/worker.go +++ b/internal/cmd/worker.go @@ -38,7 +38,9 @@ func WorkerCmd(ctx context.Context) *cobra.Command { } defer statsd.Close() - db, err := cmdutil.NewDatabasePool(ctx) + consumers := runtime.NumCPU() * multiplier + + db, err := cmdutil.NewDatabasePool(ctx, multiplier) if err != nil { return err } @@ -60,8 +62,6 @@ func WorkerCmd(ctx context.Context) *cobra.Command { return fmt.Errorf("invalid queue: %s", queueID) } - consumers := runtime.NumCPU() * multiplier - worker := workerFn(logger, statsd, db, redis, queue, consumers) worker.Start() diff --git a/internal/cmdutil/cmdutil.go b/internal/cmdutil/cmdutil.go index fbff521..f08a91b 100644 --- a/internal/cmdutil/cmdutil.go +++ b/internal/cmdutil/cmdutil.go @@ -50,8 +50,13 @@ func NewRedisClient(ctx context.Context) (*redis.Client, error) { return client, nil } -func NewDatabasePool(ctx context.Context) (*pgxpool.Pool, error) { - url := fmt.Sprintf("%s?sslmode=require&pool_max_conns=32", os.Getenv("DATABASE_CONNECTION_POOL_URL")) +func NewDatabasePool(ctx context.Context, maxConns int) (*pgxpool.Pool, error) { + url := fmt.Sprintf( + "%s?sslmode=require&pool_max_conns=%d&pool_min_conns=%d", + os.Getenv("DATABASE_CONNECTION_POOL_URL"), + maxConns, + maxConns/8, + ) config, err := pgxpool.ParseConfig(url) if err != nil { return nil, err