调度结构修改8
Former-commit-id: b911bfbfbfebf783a9d655dfcf03deaf79c37ed0
This commit is contained in:
parent
5f33c93851
commit
dd637c8076
|
@ -5,6 +5,7 @@ import (
|
||||||
"gitlink.org.cn/jcce-pcm/pcm-coordinator/api/internal/types"
|
"gitlink.org.cn/jcce-pcm/pcm-coordinator/api/internal/types"
|
||||||
"gitlink.org.cn/jcce-pcm/pcm-coordinator/model"
|
"gitlink.org.cn/jcce-pcm/pcm-coordinator/model"
|
||||||
"gitlink.org.cn/jcce-pcm/utils/tool"
|
"gitlink.org.cn/jcce-pcm/utils/tool"
|
||||||
|
"gorm.io/gorm"
|
||||||
)
|
)
|
||||||
|
|
||||||
type aiScheduler struct {
|
type aiScheduler struct {
|
||||||
|
@ -29,3 +30,19 @@ func (as *aiScheduler) getNewStructForDb(task *types.TaskInfo, participantId int
|
||||||
func (as *aiScheduler) pickOptimalStrategy(task *algo.Task, providers ...*algo.Provider) (*algo.Task, error) {
|
func (as *aiScheduler) pickOptimalStrategy(task *algo.Task, providers ...*algo.Provider) (*algo.Task, error) {
|
||||||
return nil, nil
|
return nil, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func (as *aiScheduler) genTaskAndProviders(task *types.TaskInfo, dbEngin *gorm.DB) (*algo.Task, []*algo.Provider) {
|
||||||
|
var proParams []providerParams
|
||||||
|
sqlstr := "SELECT SUM(a.disk_avail) as disk_avail,SUM(a.mem_avail) as mem_avail,SUM(a.cpu_total * a.cpu_usable) as cpu_avail,participant_id from (SELECT * from sc_node_avail_info where created_time in (SELECT MAX(created_time) as time from sc_node_avail_info where deleted_flag = 0 GROUP BY participant_id,node_name)) a GROUP BY a.participant_id"
|
||||||
|
dbEngin.Raw(sqlstr).Scan(&proParams)
|
||||||
|
|
||||||
|
var providerList []*algo.Provider
|
||||||
|
for _, p := range proParams {
|
||||||
|
provider := algo.NewProvider(p.Participant_id, p.Cpu_avail, p.Mem_avail, p.Disk_avail, 0.0, 0.0, 0.0)
|
||||||
|
providerList = append(providerList, provider)
|
||||||
|
}
|
||||||
|
|
||||||
|
t := algo.NewTask(0, 1, 2, 75120000, 301214500, 1200, 2, 6, 2000)
|
||||||
|
|
||||||
|
return t, providerList
|
||||||
|
}
|
||||||
|
|
|
@ -7,6 +7,7 @@ import (
|
||||||
"gitlink.org.cn/jcce-pcm/pcm-coordinator/api/internal/types"
|
"gitlink.org.cn/jcce-pcm/pcm-coordinator/api/internal/types"
|
||||||
"gitlink.org.cn/jcce-pcm/pcm-coordinator/model"
|
"gitlink.org.cn/jcce-pcm/pcm-coordinator/model"
|
||||||
"gitlink.org.cn/jcce-pcm/utils/tool"
|
"gitlink.org.cn/jcce-pcm/utils/tool"
|
||||||
|
"gorm.io/gorm"
|
||||||
"io"
|
"io"
|
||||||
"k8s.io/apimachinery/pkg/apis/meta/v1/unstructured"
|
"k8s.io/apimachinery/pkg/apis/meta/v1/unstructured"
|
||||||
"k8s.io/apimachinery/pkg/runtime"
|
"k8s.io/apimachinery/pkg/runtime"
|
||||||
|
@ -81,3 +82,19 @@ func (cs *cloudScheduler) UnMarshalK8sStruct(yamlString string, taskId int64) mo
|
||||||
}
|
}
|
||||||
return cloud
|
return cloud
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func (cs *cloudScheduler) genTaskAndProviders(task *types.TaskInfo, dbEngin *gorm.DB) (*algo.Task, []*algo.Provider) {
|
||||||
|
var proParams []providerParams
|
||||||
|
sqlstr := "SELECT SUM(a.disk_avail) as disk_avail,SUM(a.mem_avail) as mem_avail,SUM(a.cpu_total * a.cpu_usable) as cpu_avail,participant_id from (SELECT * from sc_node_avail_info where created_time in (SELECT MAX(created_time) as time from sc_node_avail_info where deleted_flag = 0 GROUP BY participant_id,node_name)) a GROUP BY a.participant_id"
|
||||||
|
dbEngin.Raw(sqlstr).Scan(&proParams)
|
||||||
|
|
||||||
|
var providerList []*algo.Provider
|
||||||
|
for _, p := range proParams {
|
||||||
|
provider := algo.NewProvider(p.Participant_id, p.Cpu_avail, p.Mem_avail, p.Disk_avail, 0.0, 0.0, 0.0)
|
||||||
|
providerList = append(providerList, provider)
|
||||||
|
}
|
||||||
|
|
||||||
|
t := algo.NewTask(0, 1, 2, 75120000, 301214500, 1200, 2, 6, 2000)
|
||||||
|
|
||||||
|
return t, providerList
|
||||||
|
}
|
||||||
|
|
|
@ -3,6 +3,7 @@ package scheduler
|
||||||
import (
|
import (
|
||||||
"gitlink.org.cn/jcce-pcm/pcm-coordinator/api/internal/algo"
|
"gitlink.org.cn/jcce-pcm/pcm-coordinator/api/internal/algo"
|
||||||
"gitlink.org.cn/jcce-pcm/pcm-coordinator/api/internal/types"
|
"gitlink.org.cn/jcce-pcm/pcm-coordinator/api/internal/types"
|
||||||
|
"gorm.io/gorm"
|
||||||
"math/rand"
|
"math/rand"
|
||||||
"time"
|
"time"
|
||||||
)
|
)
|
||||||
|
@ -10,6 +11,7 @@ import (
|
||||||
type scheduleService interface {
|
type scheduleService interface {
|
||||||
getNewStructForDb(task *types.TaskInfo, participantId int64) (interface{}, error)
|
getNewStructForDb(task *types.TaskInfo, participantId int64) (interface{}, error)
|
||||||
pickOptimalStrategy(task *algo.Task, providers ...*algo.Provider) (*algo.Task, error)
|
pickOptimalStrategy(task *algo.Task, providers ...*algo.Provider) (*algo.Task, error)
|
||||||
|
genTaskAndProviders(task *types.TaskInfo, dbEngin *gorm.DB) (*algo.Task, []*algo.Provider)
|
||||||
}
|
}
|
||||||
|
|
||||||
type providerParams struct {
|
type providerParams struct {
|
||||||
|
|
|
@ -5,6 +5,7 @@ import (
|
||||||
"gitlink.org.cn/jcce-pcm/pcm-coordinator/api/internal/types"
|
"gitlink.org.cn/jcce-pcm/pcm-coordinator/api/internal/types"
|
||||||
"gitlink.org.cn/jcce-pcm/pcm-coordinator/model"
|
"gitlink.org.cn/jcce-pcm/pcm-coordinator/model"
|
||||||
"gitlink.org.cn/jcce-pcm/utils/tool"
|
"gitlink.org.cn/jcce-pcm/utils/tool"
|
||||||
|
"gorm.io/gorm"
|
||||||
)
|
)
|
||||||
|
|
||||||
type hpcScheduler struct {
|
type hpcScheduler struct {
|
||||||
|
@ -30,3 +31,19 @@ func (h *hpcScheduler) getNewStructForDb(task *types.TaskInfo, participantId int
|
||||||
func (h *hpcScheduler) pickOptimalStrategy(task *algo.Task, providers ...*algo.Provider) (*algo.Task, error) {
|
func (h *hpcScheduler) pickOptimalStrategy(task *algo.Task, providers ...*algo.Provider) (*algo.Task, error) {
|
||||||
return nil, nil
|
return nil, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func (h *hpcScheduler) genTaskAndProviders(task *types.TaskInfo, dbEngin *gorm.DB) (*algo.Task, []*algo.Provider) {
|
||||||
|
var proParams []providerParams
|
||||||
|
sqlstr := "SELECT SUM(a.disk_avail) as disk_avail,SUM(a.mem_avail) as mem_avail,SUM(a.cpu_total * a.cpu_usable) as cpu_avail,participant_id from (SELECT * from sc_node_avail_info where created_time in (SELECT MAX(created_time) as time from sc_node_avail_info where deleted_flag = 0 GROUP BY participant_id,node_name)) a GROUP BY a.participant_id"
|
||||||
|
dbEngin.Raw(sqlstr).Scan(&proParams)
|
||||||
|
|
||||||
|
var providerList []*algo.Provider
|
||||||
|
for _, p := range proParams {
|
||||||
|
provider := algo.NewProvider(p.Participant_id, p.Cpu_avail, p.Mem_avail, p.Disk_avail, 0.0, 0.0, 0.0)
|
||||||
|
providerList = append(providerList, provider)
|
||||||
|
}
|
||||||
|
|
||||||
|
t := algo.NewTask(0, 1, 2, 75120000, 301214500, 1200, 2, 6, 2000)
|
||||||
|
|
||||||
|
return t, providerList
|
||||||
|
}
|
||||||
|
|
|
@ -66,7 +66,7 @@ func (s *scheduler) AssignAndSchedule() error {
|
||||||
}
|
}
|
||||||
|
|
||||||
//生成算法所需参数
|
//生成算法所需参数
|
||||||
task, providerList := s.genTaskAndProviders()
|
task, providerList := s.obtainParamsforStrategy()
|
||||||
|
|
||||||
strategy, err := s.scheduleService.pickOptimalStrategy(task, providerList...)
|
strategy, err := s.scheduleService.pickOptimalStrategy(task, providerList...)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
|
@ -112,18 +112,6 @@ func (s *scheduler) SaveToDb() error {
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
func (s *scheduler) genTaskAndProviders() (*algo.Task, []*algo.Provider) {
|
func (s *scheduler) obtainParamsforStrategy() (*algo.Task, []*algo.Provider) {
|
||||||
proParams := []providerParams{}
|
return s.scheduleService.genTaskAndProviders(s.task, s.dbEngin)
|
||||||
sqlstr := "SELECT SUM(a.disk_avail) as disk_avail,SUM(a.mem_avail) as mem_avail,SUM(a.cpu_total * a.cpu_usable) as cpu_avail,participant_id from (SELECT * from sc_node_avail_info where created_time in (SELECT MAX(created_time) as time from sc_node_avail_info where deleted_flag = 0 GROUP BY participant_id,node_name)) a GROUP BY a.participant_id"
|
|
||||||
s.dbEngin.Raw(sqlstr).Scan(&proParams)
|
|
||||||
|
|
||||||
var providerList []*algo.Provider
|
|
||||||
for _, p := range proParams {
|
|
||||||
provider := algo.NewProvider(p.Participant_id, p.Cpu_avail, p.Mem_avail, p.Disk_avail, 0.0, 0.0, 0.0)
|
|
||||||
providerList = append(providerList, provider)
|
|
||||||
}
|
|
||||||
|
|
||||||
t := algo.NewTask(0, 1, 2, 75120000, 301214500, 1200, 2, 6, 2000)
|
|
||||||
|
|
||||||
return t, providerList
|
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue