main.go 2.0 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374
  1. package main
  2. import (
  3. "qfw/util"
  4. "qfw/util/mongodb"
  5. "qfw/util/redis"
  6. "sync"
  7. "time"
  8. "gopkg.in/mgo.v2/bson"
  9. )
  10. const (
  11. REDISIDS = "ids"
  12. REDISKEYS = "keys"
  13. INFOID = "info"
  14. INFOTIMEOUT = 86400 * 30
  15. )
  16. var (
  17. Sysconfig map[string]interface{}
  18. MQFW mongodb.MongodbSim
  19. extractColl, projectColl string
  20. lenprojectname int
  21. MultiThread chan bool
  22. IdLock = &sync.Mutex{}
  23. PncbMayLock = &sync.Mutex{}
  24. //三组lock,对应的(PNKey)key为项目名称,值对应的是此项目名称对应的项目id数组
  25. PNKey, PCKey, PBKey = NewKeyMap(), NewKeyMap(), NewKeyMap()
  26. currentMegerTime int64 //合并项目的时间位置,用来清理几个月之前的项目
  27. currentMegerCount int //合并项目的计数,用来定时清理
  28. )
  29. func init() {
  30. util.ReadConfig(&Sysconfig)
  31. MultiThread = make(chan bool, util.IntAllDef(Sysconfig["thread"], 200))
  32. lenprojectname = util.IntAllDef(Sysconfig["lenprojectname"], 20) - 1
  33. redis.InitRedisBySize(Sysconfig["redisaddrs"].(string), util.IntAllDef(Sysconfig["redisPoolSize"], 100), 30, 300)
  34. MQFW = mongodb.MongodbSim{
  35. MongodbAddr: Sysconfig["mongodbServers"].(string),
  36. Size: util.IntAll(Sysconfig["mongodbPoolSize"]),
  37. DbName: Sysconfig["mongodbName"].(string),
  38. }
  39. MQFW.InitPool()
  40. extractColl = Sysconfig["extractColl"].(string)
  41. projectColl = Sysconfig["projectColl"].(string)
  42. }
  43. func main() {
  44. RunFullData()
  45. time.Sleep(99999 * time.Hour)
  46. }
  47. func NewPushInfo(tmp map[string]interface{}) bson.M {
  48. return bson.M{
  49. "comeintime": tmp["comeintime"],
  50. "publishtime": tmp["publishtime"],
  51. "title": tmp["title"],
  52. "toptype": tmp["toptype"],
  53. "subtype": tmp["subtype"],
  54. "infoformat": tmp["infoformat"],
  55. "infoid": util.BsonIdToSId(tmp["_id"]),
  56. "area": tmp["area"],
  57. "city": tmp["city"],
  58. "projectname": tmp["projectname"],
  59. "projectcode": tmp["projectcode"],
  60. "buyer": tmp["buyer"],
  61. "href": tmp["href"],
  62. }
  63. }