GAAS GFrame项目web后台
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

78 lines
1.7 KiB

package main
import (
"LAPP_GAAS_GFrame_BACKEND/conf"
dal "LAPP_GAAS_GFrame_BACKEND/dao/log"
omDal "LAPP_GAAS_GFrame_BACKEND/dao/om"
"LAPP_GAAS_GFrame_BACKEND/db"
"LAPP_GAAS_GFrame_BACKEND/grmi"
"LAPP_GAAS_GFrame_BACKEND/utils"
"fmt"
"github.com/robfig/cron"
"log"
"time"
)
func main() {
//加载配置
path := utils.EnsureDir("conf/config.yaml")
err := conf.ReadYamlConfig(path)
if err != nil {
log.Fatal("init config failed, error:", err)
}
err = Start()
if err != nil {
fmt.Println("start failed, error:", err)
}
}
func Start() error {
c := cron.New()
var err error
err = c.AddFunc("0 0 1 * * ?", ClearOldData)
if err != nil {
return err
}
c.Start()
select {}
}
func ClearOldData() {
err := db.InitDb()
if err != nil {
fmt.Println("init db failed, error:", err)
return
}
engine := db.Eloquent.Master()
session := engine.NewSession()
if err = session.Begin(); err != nil {
fmt.Println("开始事务失败")
return
}
headDao := dal.NewArtDemandHeadDAO(session, 100, "cron")
lstDao := dal.NewArtDemandLstDAO(session, 100, "cron")
workOrderDao := omDal.NewWorkOrderDAO(session, 100, "cron")
endTime := time.Now().AddDate(0, 0, -30).Format(grmi.DatetimeOutFormat)
err = headDao.ClearOldData(endTime)
if err != nil {
fmt.Println("clear head data failed:", err)
_ = session.Rollback()
return
}
err = lstDao.ClearOldData(endTime)
if err != nil {
fmt.Println("clear list data failed:", err)
_ = session.Rollback()
return
}
err = workOrderDao.ClearOldData(endTime)
if err != nil {
fmt.Println("clear work order data failed:", err)
_ = session.Rollback()
return
}
fmt.Println("clear date success, endTime:", endTime)
}