pcm-coordinator/api/internal/mqs/kq/ScheduleAi.go

47 lines
910 B
Go

package kq
import (
"context"
"gitlink.org.cn/jcce-pcm/pcm-coordinator/api/internal/svc"
scheduler2 "gitlink.org.cn/jcce-pcm/pcm-coordinator/pkg/scheduler"
)
/*
*
Listening to the payment flow status change notification message queue
*/
type ScheduleAiMq struct {
ctx context.Context
svcCtx *svc.ServiceContext
}
func NewScheduleAiMq(ctx context.Context, svcCtx *svc.ServiceContext) *ScheduleAiMq {
return &ScheduleAiMq{
ctx: ctx,
svcCtx: svcCtx,
}
}
func (l *ScheduleAiMq) Consume(_, val string) error {
// 接受消息, 根据标签筛选过滤
aiSchdl := scheduler2.NewAiScheduler(val)
schdl, err := scheduler2.NewScheduler(aiSchdl, val, l.svcCtx.DbEngin)
if err != nil {
return err
}
schdl.MatchLabels()
// 调度算法
err = schdl.AssignAndSchedule()
if err != nil {
return err
}
// 存储数据
err = schdl.SaveToDb()
if err != nil {
return err
}
return nil
}