1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374 |
- package main
- import (
- "qfw/util"
- "qfw/util/mongodb"
- "qfw/util/redis"
- "sync"
- "time"
- "gopkg.in/mgo.v2/bson"
- )
- const (
- REDISIDS = "ids"
- REDISKEYS = "keys"
- INFOID = "info"
- INFOTIMEOUT = 86400 * 30
- )
- var (
- Sysconfig map[string]interface{}
- MQFW mongodb.MongodbSim
- extractColl, projectColl string
- lenprojectname int
- MultiThread chan bool
- IdLock = &sync.Mutex{}
- PncbMayLock = &sync.Mutex{}
- //三组lock,对应的(PNKey)key为项目名称,值对应的是此项目名称对应的项目id数组
- PNKey, PCKey, PBKey = NewKeyMap(), NewKeyMap(), NewKeyMap()
- currentMegerTime int64 //合并项目的时间位置,用来清理几个月之前的项目
- currentMegerCount int //合并项目的计数,用来定时清理
- )
- func init() {
- util.ReadConfig(&Sysconfig)
- MultiThread = make(chan bool, util.IntAllDef(Sysconfig["thread"], 200))
- lenprojectname = util.IntAllDef(Sysconfig["lenprojectname"], 20) - 1
- redis.InitRedisBySize(Sysconfig["redisaddrs"].(string), util.IntAllDef(Sysconfig["redisPoolSize"], 100), 30, 300)
- MQFW = mongodb.MongodbSim{
- MongodbAddr: Sysconfig["mongodbServers"].(string),
- Size: util.IntAll(Sysconfig["mongodbPoolSize"]),
- DbName: Sysconfig["mongodbName"].(string),
- }
- MQFW.InitPool()
- extractColl = Sysconfig["extractColl"].(string)
- projectColl = Sysconfig["projectColl"].(string)
- }
- func main() {
- RunFullData()
- time.Sleep(99999 * time.Hour)
- }
- func NewPushInfo(tmp map[string]interface{}) bson.M {
- return bson.M{
- "comeintime": tmp["comeintime"],
- "publishtime": tmp["publishtime"],
- "title": tmp["title"],
- "toptype": tmp["toptype"],
- "subtype": tmp["subtype"],
- "infoformat": tmp["infoformat"],
- "infoid": util.BsonIdToSId(tmp["_id"]),
- "area": tmp["area"],
- "city": tmp["city"],
- "projectname": tmp["projectname"],
- "projectcode": tmp["projectcode"],
- "buyer": tmp["buyer"],
- "href": tmp["href"],
- }
- }
|