|
@@ -21,11 +21,12 @@ import (
|
|
|
var EscIds map[string][]string //id区间
|
|
|
|
|
|
//根据esc数量实例数量id划段
|
|
|
-func IdsRange(table string) int {
|
|
|
+func IdsRange(table, endate string) int {
|
|
|
start := time.Date(2015, 11, 3, 0, 0, 0, 0, time.Local)
|
|
|
+ end, _ := time.ParseInLocation(qu.Date_Short_Layout, endate, time.Local)
|
|
|
EscIds = map[string][]string{}
|
|
|
list, _ := db.Mgo.Find("ecs", `{"Status":"Running"}`, nil, nil, false, -1, -1)
|
|
|
- ids := RangeIdsByDate(len(*list), start)
|
|
|
+ ids := RangeIdsByDate(len(*list), start, end)
|
|
|
for k, v := range *list {
|
|
|
db.Mgo.UpdateById("ecs", qu.BsonIdToSId(v["_id"]), map[string]interface{}{
|
|
|
"$set": map[string]interface{}{
|
|
@@ -71,12 +72,12 @@ func RunEcsTask() int {
|
|
|
}
|
|
|
|
|
|
//id分段
|
|
|
-func RangeIdsByDate(escnum int, start time.Time) map[string][]string {
|
|
|
+func RangeIdsByDate(escnum int, start, edate time.Time) map[string][]string {
|
|
|
ids := map[string][]string{}
|
|
|
task, _ := db.Mgo.FindById("task", qu.ObjToString(ju.Config["udptaskid"]), nil)
|
|
|
log.Println(qu.ObjToString((*task)["s_mgoaddr"]), qu.ObjToString((*task)["s_mgodb"]))
|
|
|
DB := db.MgoFactory(2, 3, 120, qu.ObjToString((*task)["s_mgoaddr"]), qu.ObjToString((*task)["s_mgodb"]))
|
|
|
- total := DB.Count("bidding", `{}`)
|
|
|
+ total := DB.Count("bidding", `{"comeintime":{"$lt":`+fmt.Sprint(edate.Unix())+`}}`)
|
|
|
total_back := DB.Count("bidding_back", `{}`)
|
|
|
total += total_back
|
|
|
pagesize := (total + escnum - 1) / escnum
|
|
@@ -90,14 +91,18 @@ func RangeIdsByDate(escnum int, start time.Time) map[string][]string {
|
|
|
table := "bidding_back"
|
|
|
for {
|
|
|
tmpsid := bson.NewObjectIdWithTime(start)
|
|
|
- end := start.Add(12 * time.Hour)
|
|
|
- eid = bson.NewObjectIdWithTime(end)
|
|
|
+ end := start.Add(4 * time.Hour)
|
|
|
+ if end.Unix() > edate.Unix() {
|
|
|
+ eid = bson.NewObjectIdWithTime(edate)
|
|
|
+ } else {
|
|
|
+ eid = bson.NewObjectIdWithTime(end)
|
|
|
+ }
|
|
|
start = end
|
|
|
query := bson.M{"_id": bson.M{"$gte": tmpsid, "$lt": eid}}
|
|
|
count := DB.Count(table, query)
|
|
|
log.Println(count, table, query)
|
|
|
if count < 1 { //校验是否切换table
|
|
|
- tmpnum := DB.Count(table, bson.M{"_id": bson.M{"$gte": tmpsid, "$lt": bson.NewObjectIdWithTime(end.Add(24 * 10 * time.Hour))}})
|
|
|
+ tmpnum := DB.Count(table, bson.M{"_id": bson.M{"$gte": tmpsid, "$lt": bson.NewObjectIdWithTime(end.Add(24 * 10 * time.Hour) /*连续10天无数据*/)}})
|
|
|
if tmpnum < 1 && table != "bidding" {
|
|
|
table = "bidding"
|
|
|
start = start.Add(-12 * time.Hour)
|