diff --git a/internal/cmd/api.go b/internal/cmd/api.go index e2f9397..45a1936 100644 --- a/internal/cmd/api.go +++ b/internal/cmd/api.go @@ -39,7 +39,7 @@ func APICmd(ctx context.Context) *cobra.Command { } defer db.Close() - redis, err := cmdutil.NewRedisClient(ctx, 16) + redis, err := cmdutil.NewRedisLocksClient(ctx, 16) if err != nil { return err } diff --git a/internal/cmd/scheduler.go b/internal/cmd/scheduler.go index 143ac54..e2434f8 100644 --- a/internal/cmd/scheduler.go +++ b/internal/cmd/scheduler.go @@ -46,13 +46,19 @@ func SchedulerCmd(ctx context.Context) *cobra.Command { } defer db.Close() - redis, err := cmdutil.NewRedisClient(ctx, 16) + redis, err := cmdutil.NewRedisLocksClient(ctx, 16) if err != nil { return err } defer redis.Close() - queue, err := cmdutil.NewQueueClient(logger, redis, "worker") + qredis, err := cmdutil.NewRedisQueueClient(ctx, 16) + if err != nil { + return err + } + defer qredis.Close() + + queue, err := cmdutil.NewQueueClient(logger, qredis, "worker") if err != nil { return err } diff --git a/internal/cmd/worker.go b/internal/cmd/worker.go index 8729452..9dca3de 100644 --- a/internal/cmd/worker.go +++ b/internal/cmd/worker.go @@ -60,13 +60,13 @@ func WorkerCmd(ctx context.Context) *cobra.Command { } defer db.Close() - redis, err := cmdutil.NewRedisClient(ctx, consumers) + redis, err := cmdutil.NewRedisLocksClient(ctx, consumers) if err != nil { return err } defer redis.Close() - qredis, err := cmdutil.NewRedisClient(ctx, poolSize) + qredis, err := cmdutil.NewRedisQueueClient(ctx, poolSize) if err != nil { return err } diff --git a/internal/cmdutil/cmdutil.go b/internal/cmdutil/cmdutil.go index 4f35801..eceac91 100644 --- a/internal/cmdutil/cmdutil.go +++ b/internal/cmdutil/cmdutil.go @@ -36,8 +36,16 @@ func NewStatsdClient(tags ...string) (*statsd.Client, error) { return statsd.New(os.Getenv("STATSD_URL"), statsd.WithTags(tags)) } -func NewRedisClient(ctx context.Context, maxConns int) (*redis.Client, error) { - opt, err := redis.ParseURL(os.Getenv("REDIS_URL")) +func NewRedisLocksClient(ctx context.Context, maxConns int) (*redis.Client, error) { + return newRedisClient(ctx, "REDIS_LOCKS_URL", maxConns) +} + +func NewRedisQueueClient(ctx context.Context, maxConns int) (*redis.Client, error) { + return newRedisClient(ctx, "REDIS_QUEUE_URL", maxConns) +} + +func newRedisClient(ctx context.Context, env string, maxConns int) (*redis.Client, error) { + opt, err := redis.ParseURL(os.Getenv(env)) if err != nil { return nil, err }