Skip to content

Commit 8448d16

Browse files
committed
调整 worker 调度层
1 parent ec9a1c4 commit 8448d16

6 files changed

Lines changed: 46 additions & 14 deletions

File tree

HISTORY.md

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,11 @@
11
## ✒ 历史版本的特性介绍 (Features in old versions)
22

3+
### v0.2.3-alpha
4+
5+
> 此版本发布于 2025-06-28
6+
7+
* 调整 worker 调度层
8+
39
### v0.2.2-alpha
410

511
> 此版本发布于 2025-06-26

_icons/coverage.svg

Lines changed: 2 additions & 2 deletions
Loading

option.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -60,7 +60,7 @@ func WithSyncMutex() Option {
6060
}
6161
}
6262

63-
// WithRoundRobinScheduler sets the new workers function using round robin strategy.
63+
// WithRoundRobinScheduler sets the new scheduler function using round robin strategy.
6464
func WithRoundRobinScheduler() Option {
6565
newSchedulerFunc := func(workers []*worker) scheduler {
6666
return newRoundRobinScheduler(workers)
@@ -71,7 +71,7 @@ func WithRoundRobinScheduler() Option {
7171
}
7272
}
7373

74-
// WithRandomScheduler sets the new workers function using random strategy.
74+
// WithRandomScheduler sets the new scheduler function using random strategy.
7575
func WithRandomScheduler() Option {
7676
newSchedulerFunc := func(workers []*worker) scheduler {
7777
return newRandomScheduler(workers)

option_test.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -78,7 +78,7 @@ func TestWithRoundRobinScheduler(t *testing.T) {
7878
conf := newDefaultConfig(workerNum)
7979
WithRoundRobinScheduler()(conf)
8080

81-
workers := make([]*worker, workerNum)
81+
workers := make([]*worker, 0, workerNum)
8282
got := conf.newSchedulerFunc(workers)
8383

8484
scheduler, ok := got.(*roundRobinScheduler)
@@ -97,7 +97,7 @@ func TestWithRandomScheduler(t *testing.T) {
9797
conf := newDefaultConfig(workerNum)
9898
WithRandomScheduler()(conf)
9999

100-
workers := make([]*worker, workerNum)
100+
workers := make([]*worker, 0, workerNum)
101101
got := conf.newSchedulerFunc(workers)
102102

103103
scheduler, ok := got.(*randomScheduler)

random_test.go

Lines changed: 17 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -4,19 +4,32 @@
44

55
package goes
66

7-
import "testing"
7+
import (
8+
"fmt"
9+
"testing"
10+
)
811

912
// go test -v -cover -run=^TestRandomScheduler$
1013
func TestRandomScheduler(t *testing.T) {
1114
workerNum := 16
1215
workers := make([]*worker, 0, workerNum)
13-
for i := 0; i < workerNum; i++ {
14-
worker := new(worker)
15-
workers = append(workers, worker)
16+
for range workerNum {
17+
workers = append(workers, new(worker))
1618
}
1719

1820
scheduler := newRandomScheduler(workers)
21+
if fmt.Sprintf("%p", scheduler.workers) != fmt.Sprintf("%p", workers) {
22+
t.Fatalf("scheduler.workers %p != workers %p", scheduler.workers, workers)
23+
}
24+
25+
if len(scheduler.workers) != len(workers) {
26+
t.Fatalf("len(scheduler.workers) %d != len(workers) %d", len(scheduler.workers), len(workers))
27+
}
28+
1929
scheduler.Set(workers)
30+
if fmt.Sprintf("%p", scheduler.workers) != fmt.Sprintf("%p", workers) {
31+
t.Fatalf("scheduler.workers %p != workers %p", scheduler.workers, workers)
32+
}
2033

2134
if len(scheduler.workers) != len(workers) {
2235
t.Fatalf("len(scheduler.workers) %d != len(workers) %d", len(scheduler.workers), len(workers))

round_robin_test.go

Lines changed: 17 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -4,19 +4,32 @@
44

55
package goes
66

7-
import "testing"
7+
import (
8+
"fmt"
9+
"testing"
10+
)
811

912
// go test -v -cover -run=^TestRoundRobinScheduler$
1013
func TestRoundRobinScheduler(t *testing.T) {
1114
workerNum := 16
1215
workers := make([]*worker, 0, workerNum)
13-
for i := 0; i < workerNum; i++ {
14-
worker := new(worker)
15-
workers = append(workers, worker)
16+
for range workerNum {
17+
workers = append(workers, new(worker))
1618
}
1719

1820
scheduler := newRoundRobinScheduler(workers)
21+
if fmt.Sprintf("%p", scheduler.workers) != fmt.Sprintf("%p", workers) {
22+
t.Fatalf("scheduler.workers %p != workers %p", scheduler.workers, workers)
23+
}
24+
25+
if len(scheduler.workers) != len(workers) {
26+
t.Fatalf("len(scheduler.workers) %d != len(workers) %d", len(scheduler.workers), len(workers))
27+
}
28+
1929
scheduler.Set(workers)
30+
if fmt.Sprintf("%p", scheduler.workers) != fmt.Sprintf("%p", workers) {
31+
t.Fatalf("scheduler.workers %p != workers %p", scheduler.workers, workers)
32+
}
2033

2134
if len(scheduler.workers) != len(workers) {
2235
t.Fatalf("len(scheduler.workers) %d != len(workers) %d", len(scheduler.workers), len(workers))

0 commit comments

Comments
 (0)