47 lines
910 B
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
|
|
}
|