Skip to content

Commit d459f9d

Browse files
committed
WaitGroup
1 parent 250bad6 commit d459f9d

File tree

1 file changed

+16
-4
lines changed

1 file changed

+16
-4
lines changed

mq/main.go

+16-4
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@ import (
66
"log"
77
"os"
88
"os/signal"
9+
"sync"
910
"syscall"
1011
"time"
1112

@@ -19,7 +20,10 @@ import (
1920
uuid "github.com/gofrs/uuid"
2021
)
2122

23+
const messages = 1000
24+
2225
var ops uint64
26+
var wg sync.WaitGroup
2327

2428
func getID() *string {
2529
u4, err := uuid.NewV4()
@@ -35,6 +39,8 @@ func main() {
3539
queueURL := "https://sqs.us-east-1.amazonaws.com/.../mq.fifo"
3640

3741
h := mq.HandlerFunc(func(m *mq.Message) error {
42+
defer wg.Done()
43+
3844
fmt.Printf("Received message: %s\n", aws.StringValue(m.SQSMessage.Body))
3945

4046
atomic.AddUint64(&ops, 1)
@@ -76,19 +82,25 @@ func main() {
7682
p.Start()
7783
defer p.Shutdown(ctx)
7884

85+
wg.Add(1)
86+
7987
go func() {
80-
for i := 1000; i <= 1500; i++ {
88+
defer wg.Done()
89+
max := 1000 + messages
90+
for i := 1001; i <= max; i++ {
91+
idx := i - 1000
92+
wg.Add(1)
8193
// Publish messages (will be batched).
8294
p.Publish(&sqs.SendMessageBatchRequestEntry{
8395
Id: getID(),
8496
MessageGroupId: aws.String("Hello"),
85-
MessageBody: aws.String(fmt.Sprintf("%v=>Hello-Message-%s", i, *getID())),
97+
MessageBody: aws.String(fmt.Sprintf("%v=>Hello-Message-%s", idx, *getID())),
8698
})
87-
log.Printf("published message %v\n", i)
99+
log.Printf("published message %v\n", idx)
88100
}
89101
}()
90102

91-
time.Sleep(time.Duration(60 * time.Second))
103+
wg.Wait()
92104

93105
fmt.Println("ops:", ops)
94106
}

0 commit comments

Comments
 (0)