From be824acaeced401a983ce7eace00545a4fd34b44 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Dawid=20Wysoki=C5=84ski?= Date: Mon, 8 Apr 2024 07:08:11 +0200 Subject: [PATCH] refactor: runConsumer - minor changes to the initialization/cleanup sequence --- cmd/twhelp/cmd_consumer.go | 34 +++++++++++++++++----------------- 1 file changed, 17 insertions(+), 17 deletions(-) diff --git a/cmd/twhelp/cmd_consumer.go b/cmd/twhelp/cmd_consumer.go index 132f120..5ec6537 100644 --- a/cmd/twhelp/cmd_consumer.go +++ b/cmd/twhelp/cmd_consumer.go @@ -299,18 +299,9 @@ type registerConsumerHandlersFunc func( //nolint:gocyclo func runConsumer(c *cli.Context, name string, registerHandlers registerConsumerHandlersFunc) error { - ctx, cancel := context.WithCancel(c.Context) - defer cancel() - - logger := loggerFromCtx(ctx) + logger := loggerFromCtx(c.Context) watermillLogger := newWatermillLogger(logger) - var wg sync.WaitGroup - defer func() { - // it's required for the graceful shutdown - wg.Wait() - }() - amqpConn, err := newAMQPConnectionFromFlags(c, watermillLogger) if err != nil { return err @@ -347,13 +338,6 @@ func runConsumer(c *cli.Context, name string, registerHandlers registerConsumerH } defer closeBunDB(bunDB, logger) - healthObserver := healthfile.LiveObserver(health.New(), "/tmp/live") - defer func() { - if closeErr := healthObserver.Close(); closeErr != nil { - logger.Warn("couldn't close health observer", slog.Any("error", closeErr)) - } - }() - router, err := newWatermillRouter(watermillLogger) if err != nil { return err @@ -371,6 +355,22 @@ func runConsumer(c *cli.Context, name string, registerHandlers registerConsumerH return err } + ctx, cancel := context.WithCancel(c.Context) + defer cancel() + + var wg sync.WaitGroup + defer func() { + // it's required for the graceful shutdown + wg.Wait() + }() + + healthObserver := healthfile.LiveObserver(health.New(), "/tmp/live") + defer func() { + if closeErr := healthObserver.Close(); closeErr != nil { + logger.Warn("couldn't close health observer", slog.Any("error", closeErr)) + } + }() + wg.Add(1) go func() { defer wg.Done()