From 23b41d37c80bdd11baf7c0f850cd78c60ca5159f Mon Sep 17 00:00:00 2001
From: "daniel.naude" <danieln@bob.co.za>
Date: Mon, 13 Jan 2025 08:57:40 +0200
Subject: [PATCH] Add concurrency handling to debug SQS message sending

This is to fix sqs messages with a delay not working on local development environments.
---
 sqs/sqs.go | 8 +++++++-
 1 file changed, 7 insertions(+), 1 deletion(-)

diff --git a/sqs/sqs.go b/sqs/sqs.go
index 0d0259f..c1d8619 100644
--- a/sqs/sqs.go
+++ b/sqs/sqs.go
@@ -6,10 +6,12 @@ import (
 	"context"
 	"encoding/json"
 	"fmt"
-	"gitlab.bob.co.za/bob-public-utils/bobgroup-go-utils/utils"
 	"io"
+	"sync"
 	"time"
 
+	"gitlab.bob.co.za/bob-public-utils/bobgroup-go-utils/utils"
+
 	"github.com/google/uuid"
 	"gitlab.bob.co.za/bob-public-utils/bobgroup-go-utils/s3"
 
@@ -108,7 +110,10 @@ func (m *Messenger) SendSQSMessage(headers map[string]string, body string, curre
 func SendSQSMessage(msgr Messenger, objectToSend interface{}, currentRequestID *string, sqsType string, isDebug bool) error {
 
 	if isDebug {
+		var wg sync.WaitGroup
+		wg.Add(1)
 		go func() {
+			defer wg.Done()
 			if msgr.DelaySeconds != nil {
 				delay := *msgr.DelaySeconds
 				time.Sleep(time.Second * time.Duration(delay))
@@ -118,6 +123,7 @@ func SendSQSMessage(msgr Messenger, objectToSend interface{}, currentRequestID *
 				Post("http://127.0.0.1:3000/sqs/" + sqsType)
 		}()
 		time.Sleep(time.Second * 1)
+		wg.Wait()
 		return nil
 	}
 
-- 
GitLab