main.go 1.9 KB

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