package timetask import ( "log" qu "app.yhyue.com/moapp/jybase/common" "github.com/robfig/cron" "KeyWebsiteMonitor/spider/browser" "KeyWebsiteMonitor/spider/config" "KeyWebsiteMonitor/spider/db" ) var LuaconfigMap map[string]interface{} func Init() map[string]interface{} { m := map[string]interface{}{} log.Println("加载luaconfig") sess := db.Mgo.GetMgoConn() defer db.Mgo.DestoryMongoConn(sess) it := sess.DB("editor").C("luaconfig").Find(nil).Sort("_id").Select(map[string]interface{}{ "spidercode": 1, "spidercompete": 1, "infoformat": 1, "param_common": 1, }).Iter() total := 0 for tmp := make(map[string]interface{}); it.Next(&tmp); total++ { if total%5000 == 0 { log.Println("cur index ", total) } spidercode := qu.ObjToString(tmp["spidercode"]) infoformat := tmp["infoformat"] spidercompete := tmp["spidercompete"] param_common, _ := tmp["param_common"].([]interface{}) t := param_common[7] m[spidercode] = map[string]interface{}{ "T": t, "infoformat": infoformat, "spidercompete": spidercompete, } tmp = make(map[string]interface{}) } log.Println("加载luaconfig结束") return m } func Run() { browser.DoTask() return log.Println(config.Sysconfig.CronTime) c := cron.New() defer c.Stop() //*/1 * * * * * //51 10 * * * * //"30 4 11 * * *" c.AddFunc(config.Sysconfig.CronTime, browser.DoTask) // 启动cron调度器 c.Start() // 为了防止程序退出,这里使用一个阻塞的select语句 } // //老 // func Run2() { // log.Println(config.Sysconfig.CronTime) // c := cron.New() // defer c.Stop() // //*/1 * * * * * // //51 10 * * * * // //"30 4 11 * * *" // c.AddFunc(config.Sysconfig.CronTime, do) // // 启动cron调度器 // c.Start() // // 为了防止程序退出,这里使用一个阻塞的select语句 // select {} // } // func do() { // log.Println("start") // bs, err := os.ReadFile(*luaFile) // if err != nil { // log.Fatal(err) // } // script := string(bs) // var vm *VM // if sp_config.Sysconfig.RunModel == "local" { // vm = NewLocalVM(sp_config.Sysconfig.HeadLess, sp_config.Sysconfig.ShowImage, sp_config.Sysconfig.ProxyAddr, sp_config.Sysconfig.DownloadPath, storage, *mdb) // } else { // // vm = NewRemoteVM(config.WebsocketURL, storage, *mdb) // vm = NewRemoteVM(*chromeweb, storage, *mdb) // } // if err := vm.RunScript(script); err != nil { // log.Println("vm runscript", err.Error()) // } // //最后执行 // if sp_config.Sl != nil { // log.Println("sl close") // sp_config.Sl.Close() // } // log.Println("end") // }