package timetask import ( "app.yhyue.com/moapp/jybase/date" "github.com/robfig/cron/v3" "log" "telemarketingEtl/entity" "time" _ "github.com/gogf/gf/contrib/drivers/mysql/v2" "github.com/gogf/gf/v2/os/gcfg" "github.com/gogf/gf/v2/os/gctx" ) /* #查看 eventInfoTime: 5 #搜索 searchInfoTime: 5 #每日 visitInfoTime: 5 #定时 openSeaTime: 5 #退出 deleteOpenSeaTime: 5 #自动退出 returnOpenSeaTime: 5 */ func today() int64 { now := time.Now() today := time.Date(now.Year(), now.Month(), now.Day(), 0, 0, 0, 0, now.Location()) return today.Unix() } func GetStartEnd() (start, end int64) { now := time.Now() today := time.Date(now.Year(), now.Month(), now.Day(), 0, 0, 0, 0, now.Location()) start = today.AddDate(0, 0, -1).Unix() end = today.Unix() return } type TaskEventInfo struct{} func (t *TaskEventInfo) Run() { log.Println("开始TaskEventInfo") now := time.Now() end := now.Unix() min := gcfg.Instance().MustGet(gctx.New(), "eventInfoTime", "").Int() start := now.Add(-time.Minute * time.Duration(min)).Unix() //查看事件 entity.EventInfoAdd(start, end) log.Println("结束TaskEventInfo") } type TaskSearchInfo struct{} func (t *TaskSearchInfo) Run() { log.Println("开始TaskSearchInfo") now := time.Now() end := now.Unix() min := gcfg.Instance().MustGet(gctx.New(), "searchInfoTime", "").Int() start := now.Add(-time.Minute * time.Duration(min)).Unix() //搜索事件 entity.SearchInfoAdd(start, end) log.Println("结束TaskSearchInfo") } type TaskVisitInfo struct{} func (t *TaskVisitInfo) Run() { log.Println("开始TaskVisitInfo") now := time.Now() end := now.Unix() min := gcfg.Instance().MustGet(gctx.New(), "visitInfoTime", "").Int() start := now.Add(-time.Minute * time.Duration(min)).Unix() entity.VisitInfoAdd(start, end) //entity.VisitInfoAdd(1721404800, 1724947200) log.Println("结束TaskVisitInfo") } type TaskOpenSea struct{} func (t *TaskOpenSea) Run() { log.Println("开始TaskOpenSea") entity.GetOpenSea() log.Println("结束TaskOpenSea") } type TaskCountMaxVisit struct{} func (t *TaskCountMaxVisit) Run() { log.Println("开始TaskCountMaxVisit") entity.CountMaxVisit() log.Println("结束TaskCountMaxVisit") } type TaskCountCalled struct{} func (t *TaskCountCalled) Run() { log.Println("开始TaskCountCalled") entity.CountCalled() log.Println("结束TaskCountCalled") } type TaskMissedCalls struct{} func (t *TaskMissedCalls) Run() { log.Println("开始TaskMissedCalls") entity.MissedCalls() log.Println("结束TaskMissedCalls") } type TaskJyList struct{} func (t *TaskJyList) Run() { log.Println("开始TaskJyList") entity.Count30DaysSearch() log.Println("结束TaskJyList") } type TaskJyDetail struct{} func (t *TaskJyDetail) Run() { log.Println("开始TaskJyDetail") entity.Count30DaysDetail() log.Println("结束TaskJyDetail") } type TaskVipExpire struct{} func (t *TaskVipExpire) Run() { log.Println("开始TaskVipExpire") entity.VipExpire() log.Println("结束TaskVipExpire") } // 定时任务 func Run() { timetaskBl := gcfg.Instance().MustGet(gctx.New(), "timetaskBl", "").Bool() if timetaskBl { var ( c = cron.New() ) eventInfoTask := gcfg.Instance().MustGet(gctx.New(), "eventInfoTask", "").String() searchInfoTask := gcfg.Instance().MustGet(gctx.New(), "searchInfoTask", "").String() visitInfoTask := gcfg.Instance().MustGet(gctx.New(), "visitInfoTask", "").String() openSeaTask := gcfg.Instance().MustGet(gctx.New(), "openSeaTask", "").String() countMaxVisitTask := gcfg.Instance().MustGet(gctx.New(), "countMaxVisitTask", "").String() countCalledVoice := gcfg.Instance().MustGet(gctx.New(), "countCallsTask", "").String() missedCallsTask := gcfg.Instance().MustGet(gctx.New(), "missedCallsTask", "").String() jyListAndDetailTask := gcfg.Instance().MustGet(gctx.New(), "jyListAndDetailTask", "").String() vipExpireTask := gcfg.Instance().MustGet(gctx.New(), "vipExpireTask", "").String() c.AddJob(eventInfoTask, cron.NewChain(cron.DelayIfStillRunning(cron.DefaultLogger)).Then(&TaskEventInfo{})) c.AddJob(searchInfoTask, cron.NewChain(cron.DelayIfStillRunning(cron.DefaultLogger)).Then(&TaskSearchInfo{})) c.AddJob(visitInfoTask, cron.NewChain(cron.DelayIfStillRunning(cron.DefaultLogger)).Then(&TaskVisitInfo{})) c.AddJob(openSeaTask, cron.NewChain(cron.DelayIfStillRunning(cron.DefaultLogger)).Then(&TaskOpenSea{})) entity.CurrentDate = date.NowFormat(date.Date_Short_Layout) //近30天连续访问天数 c.AddJob(countMaxVisitTask, cron.NewChain(cron.DelayIfStillRunning(cron.DefaultLogger)).Then(&TaskCountMaxVisit{})) //最近7天外呼次数 c.AddJob(countCalledVoice, cron.NewChain(cron.DelayIfStillRunning(cron.DefaultLogger)).Then(&TaskCountCalled{})) //最近连续未接听次数 c.AddJob(missedCallsTask, cron.NewChain(cron.DelayIfStillRunning(cron.DefaultLogger)).Then(&TaskMissedCalls{})) //近3天招标采购搜索次数 c.AddJob(jyListAndDetailTask, cron.NewChain(cron.DelayIfStillRunning(cron.DefaultLogger)).Then(&TaskJyList{})) //近3天点击标讯三级页次数 c.AddJob(jyListAndDetailTask, cron.NewChain(cron.DelayIfStillRunning(cron.DefaultLogger)).Then(&TaskJyDetail{})) //会员是否到期 c.AddJob(vipExpireTask, cron.NewChain(cron.DelayIfStillRunning(cron.DefaultLogger)).Then(&TaskVipExpire{})) c.Start() } }