main.go 1.8 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374
  1. package main
  2. import (
  3. "encoding/json"
  4. mu "mfw/util"
  5. "mongodb"
  6. "net"
  7. "qfw/util"
  8. )
  9. var (
  10. Sysconfig map[string]interface{}
  11. MongoTool *mongodb.MongodbSim
  12. Dbname string
  13. CollPro string //项目表
  14. CollTag string //标签表
  15. CollSave string
  16. Rate string
  17. Forecast map[string]interface{}
  18. Category []interface{}
  19. Nature []interface{}
  20. SpiderCodes []interface{}
  21. udpclient mu.UdpClient
  22. )
  23. var MgoSaveCache = make(chan map[string]interface{}, 2000)
  24. var SP = make(chan bool, 5)
  25. func init() {
  26. util.ReadConfig(&Sysconfig)
  27. Dbname = Sysconfig["mongodbName"].(string)
  28. MongoTool = &mongodb.MongodbSim{
  29. MongodbAddr: Sysconfig["mongodbServers"].(string),
  30. Size: util.IntAll(Sysconfig["mongodbPoolSize"]),
  31. DbName: Dbname,
  32. }
  33. MongoTool.InitPool()
  34. CollPro = Sysconfig["mongoColl_pro"].(string)
  35. CollTag = Sysconfig["mongoColl_tag"].(string)
  36. CollSave = Sysconfig["mongoColl_save"].(string)
  37. Rate = util.ObjToString(Sysconfig["rate"])
  38. Forecast = Sysconfig["forecast"].(map[string]interface{})
  39. Category = Sysconfig["category"].([]interface{})
  40. Nature = Sysconfig["nature"].([]interface{})
  41. SpiderCodes = Sysconfig["spiderCodes"].([]interface{})
  42. udpport, _ := Sysconfig["udpport"].(string)
  43. udpclient = mu.UdpClient{Local: udpport, BufSize: 1024}
  44. udpclient.Listen(processUdpMsg)
  45. util.Debug("Udp服务监听", udpport)
  46. }
  47. func main() {
  48. go SaveMgo()
  49. //GetProjectData("1597386920")
  50. ch := make(chan bool, 1)
  51. <-ch
  52. }
  53. //udp调用信号
  54. func processUdpMsg(act byte, data []byte, ra *net.UDPAddr) {
  55. util.Debug(act)
  56. var mapInfo map[string]interface{}
  57. err := json.Unmarshal(data, &mapInfo)
  58. util.Debug("err:", err, "mapInfo:", mapInfo)
  59. if err != nil {
  60. _ = udpclient.WriteUdp([]byte("err:"+err.Error()), mu.OP_NOOP, ra)
  61. } else if mapInfo != nil {
  62. GetProjectData(util.ObjToString(mapInfo["updatetime"]))
  63. }
  64. }