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