timetask.go 2.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113
  1. package timetask
  2. import (
  3. "log"
  4. qu "app.yhyue.com/moapp/jybase/common"
  5. "github.com/robfig/cron"
  6. "KeyWebsiteMonitor/spider/browser"
  7. "KeyWebsiteMonitor/spider/config"
  8. "KeyWebsiteMonitor/spider/db"
  9. )
  10. var LuaconfigMap map[string]interface{}
  11. func Init() map[string]interface{} {
  12. m := map[string]interface{}{}
  13. log.Println("加载luaconfig")
  14. sess := db.Mgo.GetMgoConn()
  15. defer db.Mgo.DestoryMongoConn(sess)
  16. it := sess.DB("editor").C("luaconfig").Find(nil).Sort("_id").Select(map[string]interface{}{
  17. "spidercode": 1,
  18. "spidercompete": 1,
  19. "infoformat": 1,
  20. "param_common": 1,
  21. }).Iter()
  22. total := 0
  23. for tmp := make(map[string]interface{}); it.Next(&tmp); total++ {
  24. if total%5000 == 0 {
  25. log.Println("cur index ", total)
  26. }
  27. spidercode := qu.ObjToString(tmp["spidercode"])
  28. infoformat := tmp["infoformat"]
  29. spidercompete := tmp["spidercompete"]
  30. param_common, _ := tmp["param_common"].([]interface{})
  31. t := param_common[7]
  32. m[spidercode] = map[string]interface{}{
  33. "T": t,
  34. "infoformat": infoformat,
  35. "spidercompete": spidercompete,
  36. }
  37. tmp = make(map[string]interface{})
  38. }
  39. log.Println("加载luaconfig结束")
  40. return m
  41. }
  42. func Run() {
  43. browser.DoTask()
  44. return
  45. log.Println(config.Sysconfig.CronTime)
  46. c := cron.New()
  47. defer c.Stop()
  48. //*/1 * * * * *
  49. //51 10 * * * *
  50. //"30 4 11 * * *"
  51. c.AddFunc(config.Sysconfig.CronTime, browser.DoTask)
  52. // 启动cron调度器
  53. c.Start()
  54. // 为了防止程序退出,这里使用一个阻塞的select语句
  55. }
  56. // //老
  57. // func Run2() {
  58. // log.Println(config.Sysconfig.CronTime)
  59. // c := cron.New()
  60. // defer c.Stop()
  61. // //*/1 * * * * *
  62. // //51 10 * * * *
  63. // //"30 4 11 * * *"
  64. // c.AddFunc(config.Sysconfig.CronTime, do)
  65. // // 启动cron调度器
  66. // c.Start()
  67. // // 为了防止程序退出,这里使用一个阻塞的select语句
  68. // select {}
  69. // }
  70. // func do() {
  71. // log.Println("start")
  72. // bs, err := os.ReadFile(*luaFile)
  73. // if err != nil {
  74. // log.Fatal(err)
  75. // }
  76. // script := string(bs)
  77. // var vm *VM
  78. // if sp_config.Sysconfig.RunModel == "local" {
  79. // vm = NewLocalVM(sp_config.Sysconfig.HeadLess, sp_config.Sysconfig.ShowImage, sp_config.Sysconfig.ProxyAddr, sp_config.Sysconfig.DownloadPath, storage, *mdb)
  80. // } else {
  81. // // vm = NewRemoteVM(config.WebsocketURL, storage, *mdb)
  82. // vm = NewRemoteVM(*chromeweb, storage, *mdb)
  83. // }
  84. // if err := vm.RunScript(script); err != nil {
  85. // log.Println("vm runscript", err.Error())
  86. // }
  87. // //最后执行
  88. // if sp_config.Sl != nil {
  89. // log.Println("sl close")
  90. // sp_config.Sl.Close()
  91. // }
  92. // log.Println("end")
  93. // }