Repository navigation
Expand file tree
/
Copy pathmain.go
More file actions
90 lines (74 loc) · 1.68 KB
/
Copy pathmain.go
File metadata and controls
90 lines (74 loc) · 1.68 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
package main
import (
"fmt"
"time"
"github.com/gin-gonic/gin"
"github.com/golang-collections/collections/queue"
"github.com/google/uuid"
"github.com/hanshal101/core/manager"
"github.com/hanshal101/core/task"
"github.com/hanshal101/core/worker"
)
func main() {
whost := "0.0.0.0"
wport := 50051
mhost := "0.0.0.0"
mport := 50050
fmt.Println("starting core worker")
w := worker.Worker{
Queue: *queue.New(),
DB: make(map[uuid.UUID]*task.Task),
}
wapi := worker.API{
Address: whost,
Port: wport,
Worker: &w,
Router: gin.Default(),
}
go w.RunTasks()
go w.CollectStats()
go wapi.Start()
fmt.Println("Sleeping for 10 seconds to start the worker api")
time.Sleep(10 * time.Second)
fmt.Println("Starting core manager")
workers := []string{fmt.Sprintf("%s:%d", whost, wport)}
m := manager.New(workers)
mapi := manager.API{
Address: mhost,
Port: mport,
Manager: m,
Router: gin.Default(),
}
go m.ProcessTasks()
go m.UpdateTasks()
go m.DoHealthChecks()
mapi.Start()
// println("Sleeping")
// time.Sleep(15 * time.Second)
// for i := 0; i < 3; i++ {
// t := task.Task{
// ID: uuid.New(),
// Name: fmt.Sprintf("test-container-%d", i),
// Image: "ubuntu:latest",
// }
// te := task.TaskEvent{
// ID: uuid.New(),
// Task: t,
// }
// m.AddTask(te)
// m.SendWork()
// }
// go func() {
// for {
// fmt.Printf("[Manager] :: Updating tasks from %d worker\n", m.LastWorker)
// m.UpdateTasks()
// time.Sleep(5 * time.Second)
// }
// }()
// for {
// for _, t := range m.TaskDB {
// fmt.Printf("[Manager] :: TaskID: %d, State: %d, Task: %v\n", t.ID, t.State, t)
// time.Sleep(15 * time.Second)
// }
// }
}