Skip to content

Commit 8946002

Browse files
author
Brian Picciano
committed
perf script improvements based on new okq-go client
1 parent cf9a1f6 commit 8946002

File tree

2 files changed

+34
-47
lines changed

2 files changed

+34
-47
lines changed

perf/brute/brute.go

+13-11
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@ import (
1616
)
1717

1818
var addr = flag.String("okq-addr", "localhost:4777", "Location of okq instance to test")
19+
var noBlock = flag.Bool("no-block", false, "Whether to set NOBLOCK when pushing events")
1920

2021
func randString() string {
2122
b := make([]byte, 16)
@@ -43,37 +44,38 @@ func main() {
4344
}
4445
}()
4546

47+
fn := func(e *okq.Event) bool {
48+
return true
49+
}
50+
51+
pushFlag := okq.Normal
52+
if *noBlock {
53+
log.Println("using NOBLOCK")
54+
pushFlag = okq.NoBlock
55+
}
4656
for i := 0; i < n; i++ {
4757
go func() {
4858
cl := okq.New(*addr)
4959
for {
50-
if err := cl.Push(<-queueCh, randString()); err != nil {
60+
err := cl.Push(<-queueCh, randString(), pushFlag)
61+
if err != nil {
5162
log.Fatal(err)
5263
}
5364
}
5465
}()
5566
}
5667

57-
ch := make(chan *okq.ConsumerEvent)
5868
for i := 0; i < n; i++ {
5969
go func() {
6070
cl := okq.New(*addr)
6171
for {
62-
err := cl.Consumer(ch, nil, qs...)
72+
err := cl.Consumer(fn, nil, qs...)
6373
if err != nil {
6474
log.Printf("got error consuming: %s", err)
6575
}
6676
}
6777
}()
6878
}
6979

70-
for i := 0; i < n; i++ {
71-
go func() {
72-
for a := range ch {
73-
a.Ack()
74-
}
75-
}()
76-
}
77-
7880
select {}
7981
}

perf/constant/constant.go

+21-36
Original file line numberDiff line numberDiff line change
@@ -18,8 +18,8 @@ import (
1818
)
1919

2020
var addr = flag.String("okq-addr", "localhost:4777", "Location of okq instance to test")
21+
var noBlock = flag.Bool("no-block", false, "Whether to set NOBLOCK when pushing events")
2122
var stopCh = make(chan bool)
22-
var wg sync.WaitGroup
2323

2424
func randString() string {
2525
b := make([]byte, 16)
@@ -52,6 +52,11 @@ func main() {
5252
triggerJobCh <- true
5353
}
5454

55+
pushFlag := okq.Normal
56+
if *noBlock {
57+
log.Println("using NOBLOCK")
58+
pushFlag = okq.NoBlock
59+
}
5560
for i := 0; i < n; i++ {
5661
go func() {
5762
cl := okq.New(*addr)
@@ -60,55 +65,35 @@ func main() {
6065
if err != nil {
6166
log.Fatal(err)
6267
}
63-
if err := cl.Push(<-queueCh, string(eventB)); err != nil {
68+
err = cl.Push(<-queueCh, string(eventB), pushFlag)
69+
if err != nil {
6470
log.Fatal(err)
6571
}
6672
}
6773
}()
6874
}
6975

70-
ch := make(chan *okq.ConsumerEvent)
76+
fn := func(e *okq.Event) bool {
77+
eventB := []byte(e.Contents)
78+
var then time.Time
79+
if err := then.UnmarshalBinary(eventB); err != nil {
80+
log.Fatal(err)
81+
}
82+
agg.Agg("event", time.Since(then).Seconds())
83+
triggerJobCh <- true
84+
return true
85+
}
86+
7187
var chwg sync.WaitGroup
7288
for i := 0; i < n; i++ {
7389
chwg.Add(1)
7490
go func() {
7591
cl := okq.New(*addr)
76-
myCh := make(chan *okq.ConsumerEvent)
77-
go func() {
78-
for a := range myCh {
79-
ch <- a
80-
}
81-
chwg.Done()
82-
}()
83-
err := cl.Consumer(myCh, stopCh, qs...)
92+
err := cl.Consumer(fn, stopCh, qs...)
8493
if err != nil {
8594
log.Fatalf("got error consuming: %s", err)
8695
}
8796
}()
8897
}
89-
go func() {
90-
chwg.Wait()
91-
close(ch)
92-
}()
93-
94-
for i := 0; i < n; i++ {
95-
go func() {
96-
wg.Add(1)
97-
for a := range ch {
98-
a.Ack()
99-
100-
eventB := []byte(a.Event.Contents)
101-
var then time.Time
102-
if err := then.UnmarshalBinary(eventB); err != nil {
103-
log.Fatal(err)
104-
}
105-
agg.Agg("event", time.Since(then).Seconds())
106-
107-
triggerJobCh <- true
108-
}
109-
wg.Done()
110-
}()
111-
}
112-
113-
select {}
98+
chwg.Wait()
11499
}

0 commit comments

Comments
 (0)