db.go 2.0 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889
  1. package db
  2. import (
  3. "log"
  4. "time"
  5. "KeyWebsiteMonitor/spider/config"
  6. spider_com "KeyWebsiteMonitor/util"
  7. qu "app.yhyue.com/moapp/jybase/common"
  8. mg "app.yhyue.com/moapp/jybase/mongodb"
  9. )
  10. var Mgo mg.MongodbSim
  11. var MgoCommon mg.MongodbSim
  12. func initMgo() {
  13. Mgo = mg.MongodbSim{
  14. MongodbAddr: config.Sysconfig.MongoSpiderAddress,
  15. Size: 5,
  16. DbName: config.Sysconfig.MongoSpiderDb,
  17. }
  18. Mgo.InitPool()
  19. log.Println("init mongodb")
  20. }
  21. func initMgoCommon() {
  22. MgoCommon = mg.MongodbSim{
  23. MongodbAddr: config.Sysconfig.MongoCommonAddress,
  24. Size: 5,
  25. DbName: config.Sysconfig.MongoCommonDb,
  26. }
  27. MgoCommon.InitPool()
  28. log.Println("init mongodb")
  29. }
  30. func init() {
  31. initMgo()
  32. initMgoCommon()
  33. initRedis()
  34. }
  35. func initRedis() {
  36. //初始化redis
  37. // redis.InitRedisBySize(config.Redisaddrs, 50, 15, 150)
  38. //list=192.168.3.207:1679@jytopnet123,href=192.168.3.207:1679
  39. //other=172.17.4.84:4679@jytopnet123
  40. spider_com.InitRedisClient(config.Sysconfig.Redisaddrs)
  41. log.Println("init redis")
  42. }
  43. //DataCheck 数据检查是否异常
  44. func DataCheck(data map[string]interface{}, spidercode string) bool {
  45. msg, ok := func() (string, bool) {
  46. if data == nil || len(data) <= 0 {
  47. log.Printf("%s spidercode no data", spidercode)
  48. return "no data", false
  49. }
  50. if data["title"] == nil || data["href"] == nil || data["content"] == nil ||
  51. qu.ObjToString(data["title"]) == "" ||
  52. qu.ObjToString(data["href"]) == "" ||
  53. qu.ObjToString(data["content"]) == "" {
  54. log.Printf("%s spidercode miss fields", spidercode)
  55. return "miss fields", false
  56. }
  57. return "", true
  58. }()
  59. if msg != "" && !ok {
  60. saveErrData := map[string]interface{}{
  61. "createtime": time.Now().Unix(),
  62. "spidercode": spidercode,
  63. "err": msg,
  64. }
  65. if data != nil && len(data) > 0 {
  66. saveErrData["data"] = data
  67. saveErrData["href"] = qu.ObjToString(data["href"])
  68. saveErrData["title"] = qu.ObjToString(data["title"])
  69. saveErrData["content"] = qu.ObjToString(data["content"])
  70. }
  71. Mgo.Save("data_bak_common_err", saveErrData)
  72. }
  73. return ok
  74. }