Bläddra i källkod

cron: 添加定时删除脖环原始数据任务

Yi 2 månader sedan
förälder
incheckning
820eee9fca

+ 1 - 0
config/app.develop.yaml

@@ -43,6 +43,7 @@ cron:
   same_time_plan: "0 15 1 * * ?"        # 每天凌晨1点15分执行
   update_same_time: "0 20 1 * * ?"      # 每天凌晨1点20分执行
   system_basic_crontab: "0 25 1 * * ?"  # 每天凌晨1点25分执行
+  delete_old_original: "0 30 1 * * ?"   # 每天凌晨1点30分执行
   cow_pregnant: "0 00 15 * * ?"         # 每天15点执行
   neck_ring_estrus: "0 45 * * * ?"      # 更新脖环发情数据
   neck_ring_merge: "*/5 * * * * ?"      # 合并脖环原始2小时数据(5分钟)

+ 1 - 0
config/app.go

@@ -57,6 +57,7 @@ type CronSetting struct {
 	SameTimePlan       string `yaml:"same_time_plan"`       //  同期
 	UpdateSameTime     string `yaml:"update_same_time"`     //  更新同期
 	SystemBasicCrontab string `yaml:"system_basic_crontab"` //  系统基础定时任务
+	DeleteOldOriginal  string `yaml:"delete_old_original"`  // 删除脖环历史数据
 	CowPregnant        string `yaml:"cow_pregnant"`         //  月度牛只怀孕清单
 	UpdateActiveHabit  string `yaml:"update_active_habit"`  //  脖环2小时数据重新整合
 	NeckRingEstrus     string `yaml:"neck_ring_estrus"`     //  脖环牛只发情

+ 5 - 0
dep/di_crontab.go

@@ -80,6 +80,11 @@ func EntryCrontab(dependency CrontabDependency) *cron.Crontab {
 		panic(err)
 	}
 
+	err = newCrontab.Bind("DeleteOldOriginal", cs.DeleteOldOriginal, dependency.CrontabHub.DeleteOldOriginal)
+	if err != nil {
+		panic(err)
+	}
+
 	/*err = newCrontab.Bind("CowPregnant", cs.CowPregnant, dependency.CrontabHub.CowPregnant)
 	if err != nil {
 		panic(err)

+ 9 - 0
module/crontab/cow_cron.go

@@ -374,6 +374,15 @@ func (e *Entry) SystemBasicCrontab() error {
 	return nil
 }
 
+func (e *Entry) DeleteOldOriginal() error {
+	if err := e.DB.Model(new(model.NeckRingOriginal)).
+		Where("active_date <= ?", time.Now().AddDate(0, 0, -7).Format(model.LayoutDate2)).
+		Delete(&model.NeckRingOriginal{}).Error; err != nil {
+		zaplog.Error("crontab", zap.Any("DeleteOldOriginal", err))
+	}
+	return nil
+}
+
 func (e *Entry) InitEventData(cowList []*model.Cow, systemBasic *model.SystemBasic) {
 	switch systemBasic.Name {
 	case model.PregnantCheckForFirst, model.PregnantCheckForSecond:

+ 1 - 0
module/crontab/interface.go

@@ -32,6 +32,7 @@ type Crontab interface {
 	SameTimePlan() error
 	UpdateSameTime() error
 	SystemBasicCrontab() error
+	DeleteOldOriginal() error
 
 	// UpdateCowEstrus 脖环数据
 	UpdateCowEstrus() error           // 获取牛只发情数据 2小时执行一下

+ 0 - 1
module/mqtt/mqtt_handle.go

@@ -43,7 +43,6 @@ func (e *Entry) NeckRingHandle(data []byte) {
 			zaplog.Error("Failed to create data", zap.Any("err", err), zap.Any("dataList", newData))
 		}
 	}
-	return
 }
 
 func (e *Entry) FindPastureMqttMap() map[string]int64 {