1
0
mirror of https://github.com/newnius/YAO-scheduler.git synced 2025-12-13 07:46:43 +00:00
This commit is contained in:
2019-07-30 15:35:29 +08:00
parent 4a060d1e51
commit 463b04d9d0
4 changed files with 13 additions and 10 deletions

View File

@@ -11,7 +11,7 @@ var groupManagerInstance *GroupManager
var groupManagerInstanceLock sync.Mutex var groupManagerInstanceLock sync.Mutex
func InstanceOfGroupManager() *GroupManager { func InstanceOfGroupManager() *GroupManager {
defer groupManagerInstanceLock.Lock() defer groupManagerInstanceLock.Unlock()
groupManagerInstanceLock.Lock() groupManagerInstanceLock.Lock()
if groupManagerInstance == nil { if groupManagerInstance == nil {
@@ -22,40 +22,40 @@ func InstanceOfGroupManager() *GroupManager {
func (gm *GroupManager) Add(group Group) MsgGroupCreate { func (gm *GroupManager) Add(group Group) MsgGroupCreate {
defer gm.mu.Unlock() defer gm.mu.Unlock()
gm.mu.Lock()
if _, ok := gm.groups[group.Name]; ok { if _, ok := gm.groups[group.Name]; ok {
return MsgGroupCreate{Code: 1, Error: "Name already exists!"} return MsgGroupCreate{Code: 1, Error: "Name already exists!"}
} }
gm.groups[group.Name] = group gm.groups[group.Name] = group
gm.mu.Lock()
return MsgGroupCreate{} return MsgGroupCreate{}
} }
func (gm *GroupManager) Update(group Group) MsgGroupCreate { func (gm *GroupManager) Update(group Group) MsgGroupCreate {
defer gm.mu.Unlock() defer gm.mu.Unlock()
gm.mu.Lock()
if _, ok := gm.groups[group.Name]; !ok { if _, ok := gm.groups[group.Name]; !ok {
return MsgGroupCreate{Code: 1, Error: "Group not exists!"} return MsgGroupCreate{Code: 1, Error: "Group not exists!"}
} }
gm.groups[group.Name] = group gm.groups[group.Name] = group
gm.mu.Lock()
return MsgGroupCreate{} return MsgGroupCreate{}
} }
func (gm *GroupManager) Remove(group Group) MsgGroupCreate { func (gm *GroupManager) Remove(group Group) MsgGroupCreate {
defer gm.mu.Unlock() defer gm.mu.Unlock()
gm.mu.Lock()
if _, ok := gm.groups[group.Name]; !ok { if _, ok := gm.groups[group.Name]; !ok {
return MsgGroupCreate{Code: 1, Error: "Group not exists!"} return MsgGroupCreate{Code: 1, Error: "Group not exists!"}
} }
delete(gm.groups, group.Name) delete(gm.groups, group.Name)
gm.mu.Lock()
return MsgGroupCreate{} return MsgGroupCreate{}
} }
func (gm *GroupManager) List() MsgGroupList { func (gm *GroupManager) List() MsgGroupList {
defer gm.mu.Unlock() defer gm.mu.Unlock()
gm.mu.Lock()
var result []Group var result []Group
for _, v := range gm.groups { for _, v := range gm.groups {
result = append(result, v) result = append(result, v)
} }
gm.mu.Lock()
return MsgGroupList{Groups: result} return MsgGroupList{Groups: result}
} }

View File

@@ -97,7 +97,7 @@ func serverAPI(w http.ResponseWriter, r *http.Request) {
log.Debug("group_add") log.Debug("group_add")
var group Group var group Group
msg := MsgGroupCreate{Code: 0} msg := MsgGroupCreate{Code: 0}
err := json.Unmarshal([]byte(string(r.PostFormValue("job"))), &group) err := json.Unmarshal([]byte(string(r.PostFormValue("group"))), &group)
if err != nil { if err != nil {
msg.Code = 1 msg.Code = 1
msg.Error = err.Error() msg.Error = err.Error()

View File

@@ -11,7 +11,6 @@ type SchedulerFair struct {
queue []Job queue []Job
mu sync.Mutex mu sync.Mutex
scheduling sync.Mutex scheduling sync.Mutex
jobs map[string]*JobManager jobs map[string]*JobManager
} }

View File

@@ -137,9 +137,13 @@ type Task struct {
} }
type Group struct { type Group struct {
Name string `json:"name"` Name string `json:"name"`
Weight int `json:"weight"` Weight int `json:"weight"`
NumGPU int `json:"gpu_number"` Reserved bool `json:"reserved"`
NumGPU int `json:"quota_gpu"`
MemoryGPU int `json:"quota_gpu_mem"`
CPU int `json:"quota_cpu"`
Memory int `json:"quota_mem"`
} }
type MsgGroupCreate struct { type MsgGroupCreate struct {