@@ -31,12 +31,17 @@ func WorkerPool(h Interface, status ...sdk.Status) ([]sdk.Worker, error) {
31
31
allWorkers := make ([]sdk.Worker , 0 , len (startedWorkers )+ len (registeredWorkers ))
32
32
33
33
// Consider the registered worker
34
- for _ , w := range registeredWorkers {
34
+ for k , w := range registeredWorkers {
35
35
var found bool
36
36
for i := range startedWorkers {
37
37
if startedWorkers [i ] == w .Name {
38
38
startedWorkers = append (startedWorkers [:i ], startedWorkers [i + 1 :]... )
39
39
found = true
40
+
41
+ if strings .HasPrefix (w .Name , "register-" ) {
42
+ registeredWorkers [k ].Status = sdk .StatusWorkerRegistering
43
+ }
44
+
40
45
break
41
46
}
42
47
}
@@ -53,11 +58,27 @@ func WorkerPool(h Interface, status ...sdk.Status) ([]sdk.Worker, error) {
53
58
// And add the other worker with status pending of registering
54
59
for _ , w := range startedWorkers {
55
60
name := w
56
- status := sdk .StatusWorkerPending
61
+ var status sdk.Status
62
+
63
+ var found bool
64
+ for _ , wr := range registeredWorkers {
65
+ if wr .Name == name {
66
+ found = true
67
+ break
68
+ }
69
+ }
70
+ if found {
71
+ continue // worker is registered
72
+ }
73
+
57
74
if strings .HasPrefix (w , "register-" ) {
58
75
name = strings .Replace (w , "register-" , "" , 1 )
59
76
status = sdk .StatusWorkerRegistering
60
77
}
78
+
79
+ if status == "" {
80
+ status = sdk .StatusWorkerPending
81
+ }
61
82
allWorkers = append (allWorkers , sdk.Worker {
62
83
Name : name ,
63
84
Status : status ,
0 commit comments