Files
pig-farm-controller/internal/domain/plan/plan_service.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()
}