12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455 |
- package util
- import (
- "fmt"
- "io"
- . "jy/mongodbutil"
- "log"
- "os"
- qu "qfw/util"
- . "gopkg.in/mgo.v2/bson"
- "gopkg.in/natefinch/lumberjack.v2"
- )
- var syncint chan bool //获取下标锁
- var Config map[string]interface{}
- var Se = qu.SimpleEncrypt{Key: "topnet@extract"}
- func init() {
- //输出日志配置,多输出源
- filelog := &lumberjack.Logger{
- Filename: "./out.log",
- MaxSize: 500, // megabytes
- MaxBackups: 3,
- MaxAge: 20, //days
- Compress: true, // disabled by default
- }
- writers := []io.Writer{
- filelog,
- os.Stdout,
- }
- fileAndStdoutWriter := io.MultiWriter(writers...)
- log.SetOutput(fileAndStdoutWriter)
- syncint = make(chan bool, 1)
- }
- func InitMgoPool() {
- initCap := qu.IntAll(Config["dbsize"])
- addr := qu.ObjToString(Config["mgodb"])
- dbname := qu.ObjToString(Config["dbname"])
- Mgo = MgoFactory(initCap, initCap*3, 120, addr, dbname)
- }
- func GetSyncIndex(code string) string {
- tmp := ""
- syncint <- true
- Mgo.Update("rule_code", `{"code":"`+code+`"}`, M{"$inc": M{"index": 1}}, true, false)
- data, _ := Mgo.FindOne("rule_code", `{"code":"`+code+`"}`)
- <-syncint
- if len(*data) > 0 {
- tmp = code + "_" + fmt.Sprint((*data)["index"])
- }
- return tmp
- }
|