55 lines
1.6 KiB
Go
55 lines
1.6 KiB
Go
package plan
|
|
|
|
import (
|
|
"git.huangwc.com/pig/pig-farm-controller/internal/infra/logs"
|
|
)
|
|
|
|
// Service 定义了计划领域服务的接口。
|
|
type Service interface {
|
|
// Start 启动计划相关的后台服务,例如计划执行管理器。
|
|
Start()
|
|
// Stop 停止计划相关的后台服务,例如计划执行管理器。
|
|
Stop()
|
|
// RefreshPlanTriggers 刷新计划触发器,同步数据库中的计划状态和待执行队列中的触发器任务。
|
|
RefreshPlanTriggers() error
|
|
// TODO: 在这里添加其他与计划相关的领域服务方法
|
|
}
|
|
|
|
// planServiceImpl 是 Service 接口的具体实现。
|
|
type planServiceImpl struct {
|
|
executionManager ExecutionManager
|
|
taskManager AnalysisPlanTaskManager
|
|
logger *logs.Logger
|
|
}
|
|
|
|
// NewPlanService 创建一个新的 Service 实例。
|
|
func NewPlanService(
|
|
executionManager ExecutionManager,
|
|
taskManager AnalysisPlanTaskManager,
|
|
logger *logs.Logger,
|
|
) Service {
|
|
return &planServiceImpl{
|
|
executionManager: executionManager,
|
|
taskManager: taskManager,
|
|
logger: logger,
|
|
}
|
|
}
|
|
|
|
// Start 启动计划相关的后台服务。
|
|
func (s *planServiceImpl) Start() {
|
|
s.logger.Infof("PlanService 正在启动...")
|
|
s.executionManager.Start()
|
|
}
|
|
|
|
// Stop 停止计划相关的后台服务。
|
|
func (s *planServiceImpl) Stop() {
|
|
s.logger.Infof("PlanService 正在停止...")
|
|
s.executionManager.Stop()
|
|
}
|
|
|
|
// RefreshPlanTriggers 刷新计划触发器。
|
|
func (s *planServiceImpl) RefreshPlanTriggers() error {
|
|
s.logger.Infof("PlanService 正在刷新计划触发器...")
|
|
return s.taskManager.Refresh()
|
|
}
|