From 403d46b77766d4fb8ffde22e6f02d671ea2f6fdf Mon Sep 17 00:00:00 2001 From: huang <1724659546@qq.com> Date: Wed, 29 Oct 2025 17:13:03 +0800 Subject: [PATCH] =?UTF-8?q?=E5=88=A0=E6=8E=89=E5=8E=9F=E6=9D=A5=E7=9A=84?= =?UTF-8?q?=E5=AE=9A=E6=97=B6=E9=87=87=E9=9B=86=E7=BA=BF=E7=A8=8B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- internal/core/application.go | 4 - internal/core/component_initializers.go | 11 --- internal/domain/collection/collector.go | 6 -- internal/domain/collection/timed_collector.go | 89 ------------------- 4 files changed, 110 deletions(-) delete mode 100644 internal/domain/collection/collector.go delete mode 100644 internal/domain/collection/timed_collector.go diff --git a/internal/core/application.go b/internal/core/application.go index 74ee2da..3448082 100644 --- a/internal/core/application.go +++ b/internal/core/application.go @@ -89,7 +89,6 @@ func (app *Application) Start() error { // 3. 启动后台工作协程 app.Domain.Scheduler.Start() - app.Domain.TimedCollector.Start() // 4. 启动 API 服务器 app.API.Start() @@ -113,9 +112,6 @@ func (app *Application) Stop() error { // 关闭任务执行器 app.Domain.Scheduler.Stop() - // 关闭定时采集器 - app.Domain.TimedCollector.Stop() - // 断开数据库连接 if err := app.Infra.Storage.Disconnect(); err != nil { app.Logger.Errorw("数据库连接断开失败", "error", err) diff --git a/internal/core/component_initializers.go b/internal/core/component_initializers.go index 91d8a6a..68c354f 100644 --- a/internal/core/component_initializers.go +++ b/internal/core/component_initializers.go @@ -7,7 +7,6 @@ import ( "git.huangwc.com/pig/pig-farm-controller/internal/app/service" "git.huangwc.com/pig/pig-farm-controller/internal/app/webhook" "git.huangwc.com/pig/pig-farm-controller/internal/domain/audit" - "git.huangwc.com/pig/pig-farm-controller/internal/domain/collection" "git.huangwc.com/pig/pig-farm-controller/internal/domain/device" domain_notify "git.huangwc.com/pig/pig-farm-controller/internal/domain/notify" "git.huangwc.com/pig/pig-farm-controller/internal/domain/pig" @@ -124,7 +123,6 @@ type DomainServices struct { PigTradeManager pig.PigTradeManager PigSickManager pig.SickPigManager PigBatchDomain pig.PigBatchService - TimedCollector collection.Collector GeneralDeviceService device.Service taskFactory scheduler.TaskFactory AnalysisPlanTaskManager *scheduler.AnalysisPlanTaskManager @@ -170,14 +168,6 @@ func initDomainServices(cfg *config.Config, infra *Infrastructure, logger *logs. cfg.Task.NumWorkers, ) - // 定时采集器 - timedCollector := collection.NewTimedCollector( - infra.Repos.DeviceRepo, - generalDeviceService, - logger, - time.Duration(cfg.Collection.Interval)*time.Second, - ) - return &DomainServices{ PigPenTransferManager: pigPenTransferManager, PigTradeManager: pigTradeManager, @@ -187,7 +177,6 @@ func initDomainServices(cfg *config.Config, infra *Infrastructure, logger *logs. AnalysisPlanTaskManager: analysisPlanTaskManager, taskFactory: taskFactory, Scheduler: planScheduler, - TimedCollector: timedCollector, } } diff --git a/internal/domain/collection/collector.go b/internal/domain/collection/collector.go deleted file mode 100644 index ae28dd7..0000000 --- a/internal/domain/collection/collector.go +++ /dev/null @@ -1,6 +0,0 @@ -package collection - -type Collector interface { - Start() - Stop() -} diff --git a/internal/domain/collection/timed_collector.go b/internal/domain/collection/timed_collector.go deleted file mode 100644 index f6855ad..0000000 --- a/internal/domain/collection/timed_collector.go +++ /dev/null @@ -1,89 +0,0 @@ -package collection - -import ( - "time" - - "git.huangwc.com/pig/pig-farm-controller/internal/domain/device" - "git.huangwc.com/pig/pig-farm-controller/internal/infra/logs" - "git.huangwc.com/pig/pig-farm-controller/internal/infra/models" - "git.huangwc.com/pig/pig-farm-controller/internal/infra/repository" -) - -// TimedCollector 实现了 Collector 接口,用于定时从数据库获取设备信息并下发采集指令 -type TimedCollector struct { - deviceRepo repository.DeviceRepository - deviceService device.Service - logger *logs.Logger - interval time.Duration - ticker *time.Ticker - done chan bool -} - -// NewTimedCollector 创建一个定时采集器实例 -func NewTimedCollector( - deviceRepo repository.DeviceRepository, - deviceService device.Service, - logger *logs.Logger, - interval time.Duration, -) Collector { - return &TimedCollector{ - deviceRepo: deviceRepo, - deviceService: deviceService, - logger: logger, - interval: interval, - done: make(chan bool), - } -} - -// Start 开始定时采集 -func (c *TimedCollector) Start() { - c.logger.Infof("定时采集器启动,采集间隔: %s", c.interval) - c.ticker = time.NewTicker(c.interval) - go func() { - for { - select { - case <-c.done: - return - case <-c.ticker.C: - c.collect() - } - } - }() -} - -// Stop 停止定时采集 -func (c *TimedCollector) Stop() { - c.logger.Info("定时采集器停止") - c.ticker.Stop() - c.done <- true -} - -// collect 是核心的采集逻辑 -func (c *TimedCollector) collect() { - c.logger.Info("开始新一轮的设备数据采集") - - sensors, err := c.deviceRepo.ListAllSensors() - if err != nil { - c.logger.Errorf("采集周期: 从数据库获取所有传感器失败: %v", err) - return - } - - if len(sensors) == 0 { - c.logger.Info("采集周期: 未发现任何传感器设备,跳过本次采集") - return - } - - sensorsByController := make(map[uint][]*models.Device) - for _, sensor := range sensors { - sensorsByController[sensor.AreaControllerID] = append(sensorsByController[sensor.AreaControllerID], sensor) - } - - for controllerID, controllerSensors := range sensorsByController { - c.logger.Infof("采集周期: 准备为区域主控 %d 下的 %d 个传感器下发采集指令", controllerID, len(controllerSensors)) - if err := c.deviceService.Collect(controllerID, controllerSensors); err != nil { - c.logger.Errorf("采集周期: 为区域主控 %d 下发采集指令失败: %v", controllerID, err) - } - } - - c.logger.Info("本轮设备数据采集完成") -}