File tree 1 file changed +16
-4
lines changed
1 file changed +16
-4
lines changed Original file line number Diff line number Diff line change 6
6
"log"
7
7
"os"
8
8
"os/signal"
9
+ "sync"
9
10
"syscall"
10
11
"time"
11
12
@@ -19,7 +20,10 @@ import (
19
20
uuid "github.com/gofrs/uuid"
20
21
)
21
22
23
+ const messages = 1000
24
+
22
25
var ops uint64
26
+ var wg sync.WaitGroup
23
27
24
28
func getID () * string {
25
29
u4 , err := uuid .NewV4 ()
@@ -35,6 +39,8 @@ func main() {
35
39
queueURL := "https://sqs.us-east-1.amazonaws.com/.../mq.fifo"
36
40
37
41
h := mq .HandlerFunc (func (m * mq.Message ) error {
42
+ defer wg .Done ()
43
+
38
44
fmt .Printf ("Received message: %s\n " , aws .StringValue (m .SQSMessage .Body ))
39
45
40
46
atomic .AddUint64 (& ops , 1 )
@@ -76,19 +82,25 @@ func main() {
76
82
p .Start ()
77
83
defer p .Shutdown (ctx )
78
84
85
+ wg .Add (1 )
86
+
79
87
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 )
81
93
// Publish messages (will be batched).
82
94
p .Publish (& sqs.SendMessageBatchRequestEntry {
83
95
Id : getID (),
84
96
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 ())),
86
98
})
87
- log .Printf ("published message %v\n " , i )
99
+ log .Printf ("published message %v\n " , idx )
88
100
}
89
101
}()
90
102
91
- time . Sleep ( time . Duration ( 60 * time . Second ) )
103
+ wg . Wait ( )
92
104
93
105
fmt .Println ("ops:" , ops )
94
106
}
You can’t perform that action at this time.
0 commit comments