Skip to content

Commit d86ad72

Browse files
GotaXGota
authored and
Gota
committed
Try flush in every loop
1 parent 223cb2b commit d86ad72

File tree

2 files changed

+8
-3
lines changed

2 files changed

+8
-3
lines changed

service.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -85,8 +85,8 @@ Loop:
8585
break Loop
8686
}
8787
buffer = append(buffer, message)
88-
tryFlush(false)
8988
}
89+
tryFlush(false)
9090
timer.Stop()
9191
}
9292

service_test.go

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -15,11 +15,12 @@ func TestService(t *testing.T) {
1515
const (
1616
bufferSize = 10
1717
deliverSize = int(1.5 * bufferSize)
18+
interval = 20 * time.Millisecond
1819
)
1920
cMessage := 0
2021
cFlush := 0
2122

22-
s := NewService(bufferSize, time.Millisecond,
23+
s := NewService(bufferSize, interval,
2324
func(messages ...Message) error { cMessage += len(messages); cFlush += 1; return nil })
2425

2526
go s.Start()
@@ -28,12 +29,16 @@ func TestService(t *testing.T) {
2829
for i := 0; i < deliverSize; i++ {
2930
err := s.Push(ctx, Message{})
3031
assert.NoError(t, err)
32+
33+
if i == 1 || i == 3 {
34+
time.Sleep(interval * 2)
35+
}
3136
}
3237

3338
err := s.Stop(ctx)
3439
assert.NoError(t, err)
3540
assert.Equal(t, deliverSize, cMessage)
36-
assert.Equal(t, int(math.Ceil(float64(deliverSize)/float64(bufferSize))), cFlush)
41+
assert.Equal(t, 2+int(math.Ceil(float64(deliverSize)/float64(bufferSize))), cFlush)
3742
})
3843

3944
t.Run("stopped", func(t *testing.T) {

0 commit comments

Comments
 (0)