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()
 | 
						|
}
 |