|
@@ -20,50 +20,34 @@ import (
|
|
|
|
|
|
var (
|
|
|
Sysconfig map[string]interface{} //配置文件
|
|
|
- mconf map[string]interface{} //mongodb配置信息
|
|
|
- data_mgo *MongodbSim //mongodb操作对象
|
|
|
- task_mgo *MongodbSim //mongodb操作对象
|
|
|
+ mconf map[string]interface{}
|
|
|
+ data_mgo, task_mgo *MongodbSim
|
|
|
task_collName, task_bidding string
|
|
|
extract, extract_back, extract_log string
|
|
|
- udpclient mu.UdpClient //udp对象
|
|
|
- nextNode []map[string]interface{} //下节点数组
|
|
|
- dupdays = 7 //初始化判重范围
|
|
|
- DM *datamap //
|
|
|
+ udpclient mu.UdpClient
|
|
|
+ nextNode []map[string]interface{}
|
|
|
+ dupdays = 7
|
|
|
+ DM, FullDM *datamap
|
|
|
Update *updateInfo
|
|
|
AddGroupPool *addGroupInfo
|
|
|
- FullDM *datamap //\临时全量数据池
|
|
|
//正则筛选相关
|
|
|
- FilterRegTitle = regexp.MustCompile("^_$")
|
|
|
- FilterRegTitle_0 = regexp.MustCompile("^_$")
|
|
|
- FilterRegTitle_1 = regexp.MustCompile("^_$")
|
|
|
- FilterRegTitle_2 = regexp.MustCompile("^_$")
|
|
|
- threadNum int //线程数量
|
|
|
- SiteMap map[string]map[string]interface{} //站点map
|
|
|
- LowHeavy bool //低质量数据判重
|
|
|
- TimingTask bool //是否定时任务
|
|
|
- timingSpanDay int64 //时间跨度
|
|
|
- timingPubScope int64 //发布时间周期
|
|
|
- gtid, lastid, sec_gtid, sec_lteid string //命令输入
|
|
|
- lteid string //历史增量属性
|
|
|
- IsFull bool //是否全量
|
|
|
- updatelock sync.Mutex //锁4
|
|
|
- numberlock sync.Mutex //锁4
|
|
|
- userName, passWord string //mongo -用户密码
|
|
|
- jyfb_data map[string]string //任务池
|
|
|
- taskList []map[string]interface{} //任务池
|
|
|
- isUpdateSite bool
|
|
|
- MP *nsqdata.Producer
|
|
|
+ FilterRegTitle = regexp.MustCompile("^_$")
|
|
|
+ FilterRegTitle_0 = regexp.MustCompile("^_$")
|
|
|
+ FilterRegTitle_1 = regexp.MustCompile("^_$")
|
|
|
+ FilterRegTitle_2 = regexp.MustCompile("^_$")
|
|
|
+ threadNum int
|
|
|
+ SiteMap map[string]map[string]interface{}
|
|
|
+ LowHeavy, TimingTask, IsFull, isUpdateSite bool
|
|
|
+ timingSpanDay, timingPubScope int64
|
|
|
+ gtid, lastid, sec_gtid, sec_lteid, lteid string
|
|
|
+ updatelock, datalock, numlock sync.Mutex
|
|
|
+ userName, passWord string
|
|
|
+ jyfb_data map[string]string
|
|
|
+ taskList []map[string]interface{}
|
|
|
+ MP *nsqdata.Producer
|
|
|
)
|
|
|
|
|
|
-//初始化加载
|
|
|
-func init() {
|
|
|
- flag.StringVar(&lastid, "id", "", "增量加载的lastid") //增量
|
|
|
- flag.StringVar(>id, "gtid", "", "历史增量的起始id") //历史
|
|
|
- flag.StringVar(&sec_gtid, "sec_gtid", "", "全量分段起始id")
|
|
|
- flag.StringVar(&sec_lteid, "sec_lteid", "", "全量分段结束id")
|
|
|
- flag.Parse()
|
|
|
-
|
|
|
- qu.ReadConfig(&Sysconfig)
|
|
|
+func initMgo() {
|
|
|
userName = qu.ObjToString(Sysconfig["userName"])
|
|
|
passWord = qu.ObjToString(Sysconfig["passWord"])
|
|
|
log.Println("集群用户密码:", userName, passWord)
|
|
@@ -99,13 +83,6 @@ func init() {
|
|
|
extract_back = mconf["extract_back"].(string)
|
|
|
extract_log = mconf["extract_log"].(string)
|
|
|
|
|
|
- dupdays = qu.IntAllDef(Sysconfig["dupdays"], 5)
|
|
|
- //加载数据
|
|
|
- DM = NewDatamap(dupdays, lastid)
|
|
|
- //更新池
|
|
|
- Update = newUpdatePool()
|
|
|
- go Update.updateData()
|
|
|
-
|
|
|
FilterRegTitle = regexp.MustCompile(qu.ObjToString(Sysconfig["specialwords"]))
|
|
|
FilterRegTitle_0 = regexp.MustCompile(qu.ObjToString(Sysconfig["specialtitle_0"]))
|
|
|
FilterRegTitle_1 = regexp.MustCompile(qu.ObjToString(Sysconfig["specialtitle_1"]))
|
|
@@ -115,22 +92,25 @@ func init() {
|
|
|
TimingTask = Sysconfig["timingTask"].(bool)
|
|
|
timingSpanDay = qu.Int64All(Sysconfig["timingSpanDay"])
|
|
|
timingPubScope = qu.Int64All(Sysconfig["timingPubScope"])
|
|
|
+}
|
|
|
+func initOther() {
|
|
|
+ dupdays = qu.IntAllDef(Sysconfig["dupdays"], 5)
|
|
|
+ DM = NewDatamap(dupdays, lastid)
|
|
|
+ Update = newUpdatePool()
|
|
|
+ go Update.updateData()
|
|
|
|
|
|
var err error
|
|
|
MP, err = nsqdata.NewProducer("192.168.3.166:4150", "testnsq", true)
|
|
|
if err != nil {
|
|
|
log.Fatal("通道配置异常~", err)
|
|
|
}
|
|
|
+
|
|
|
c := cron.New()
|
|
|
c.AddFunc("0 0 1 ? * WED", func() {
|
|
|
isUpdateSite = true
|
|
|
})
|
|
|
c.Start()
|
|
|
- //站点配置
|
|
|
- initSite()
|
|
|
}
|
|
|
-
|
|
|
-//初始化站点信息
|
|
|
func initSite() {
|
|
|
site := mconf["site"].(map[string]interface{})
|
|
|
SiteMap = make(map[string]map[string]interface{}, 0)
|
|
@@ -150,6 +130,57 @@ func initSite() {
|
|
|
log.Printf("new站点加载用时:%d秒,%d个\n", int(time.Now().Unix())-start, len(SiteMap))
|
|
|
}
|
|
|
|
|
|
+//初始化加载
|
|
|
+func init() {
|
|
|
+ flag.StringVar(&lastid, "id", "", "增量加载的lastid") //增量
|
|
|
+ flag.StringVar(>id, "gtid", "", "历史增量的起始id") //历史
|
|
|
+ flag.StringVar(&sec_gtid, "sec_gtid", "", "全量分段起始id")
|
|
|
+ flag.StringVar(&sec_lteid, "sec_lteid", "", "全量分段结束id")
|
|
|
+ flag.Parse()
|
|
|
+
|
|
|
+ qu.ReadConfig(&Sysconfig)
|
|
|
+ initMgo()
|
|
|
+ initOther()
|
|
|
+ initSite()
|
|
|
+}
|
|
|
+
|
|
|
+func mainT() {
|
|
|
+ IsFull = true
|
|
|
+ //AddGroupPool = newAddGroupPool()
|
|
|
+ //go AddGroupPool.addGroupData()
|
|
|
+ //fullDataRepeat() //全量判重
|
|
|
+
|
|
|
+ //increaseRepeat(map[string]interface{}{
|
|
|
+ // "gtid": "12ec61170ae152a3c2310f02",
|
|
|
+ // "lteid": "92ec61170ae152a3c2310f02",
|
|
|
+ //})
|
|
|
+
|
|
|
+ //gtid = "62ec2dd00ae152a3c230c1a1"
|
|
|
+ //lteid = "62ec2dd00ae152a3c230c1e1"
|
|
|
+ //historyRepeat()
|
|
|
+
|
|
|
+ time.Sleep(99999 * time.Hour)
|
|
|
+}
|
|
|
+
|
|
|
+//主函数
|
|
|
+func main() {
|
|
|
+ go checkMapJob()
|
|
|
+ updport := Sysconfig["udpport"].(string)
|
|
|
+ udpclient = mu.UdpClient{Local: updport, BufSize: 1024}
|
|
|
+ udpclient.Listen(processUdpMsg)
|
|
|
+ log.Println("Udp服务监听", updport)
|
|
|
+ if TimingTask {
|
|
|
+ log.Println("正常历史部署")
|
|
|
+ go historyRepeat()
|
|
|
+ } else {
|
|
|
+ if !IsFull { //正常增量
|
|
|
+ log.Println("正常增量部署,监听任务")
|
|
|
+ go getRepeatTask()
|
|
|
+ }
|
|
|
+ }
|
|
|
+ time.Sleep(99999 * time.Hour)
|
|
|
+}
|
|
|
+
|
|
|
//udp接收
|
|
|
func processUdpMsg(act byte, data []byte, ra *net.UDPAddr) {
|
|
|
switch act {
|
|
@@ -200,41 +231,3 @@ func getRepeatTask() {
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
-
|
|
|
-func mainT() {
|
|
|
- IsFull = true
|
|
|
-
|
|
|
- //AddGroupPool = newAddGroupPool()
|
|
|
- //go AddGroupPool.addGroupData()
|
|
|
- //fullDataRepeat() //全量判重
|
|
|
-
|
|
|
- //increaseRepeat(map[string]interface{}{
|
|
|
- // "gtid": "12ec61170ae152a3c2310f02",
|
|
|
- // "lteid": "92ec61170ae152a3c2310f02",
|
|
|
- //})
|
|
|
-
|
|
|
- //gtid = "62ec2dd00ae152a3c230c1a1"
|
|
|
- //lteid = "62ec2dd00ae152a3c230c1e1"
|
|
|
- //historyRepeat()
|
|
|
-
|
|
|
- time.Sleep(99999 * time.Hour)
|
|
|
-}
|
|
|
-
|
|
|
-//主函数
|
|
|
-func main() {
|
|
|
- go checkMapJob()
|
|
|
- updport := Sysconfig["udpport"].(string)
|
|
|
- udpclient = mu.UdpClient{Local: updport, BufSize: 1024}
|
|
|
- udpclient.Listen(processUdpMsg)
|
|
|
- log.Println("Udp服务监听", updport)
|
|
|
- if TimingTask {
|
|
|
- log.Println("正常历史部署")
|
|
|
- go historyRepeat()
|
|
|
- } else {
|
|
|
- if !IsFull { //正常增量
|
|
|
- log.Println("正常增量部署,监听任务")
|
|
|
- go getRepeatTask()
|
|
|
- }
|
|
|
- }
|
|
|
- time.Sleep(99999 * time.Hour)
|
|
|
-}
|