|
@@ -172,30 +172,29 @@ func main() {
|
|
|
taskArr := mongodb.Find("ocr_task", bson.M{}, `{_id:1}`, nil, false, -1, -1)
|
|
|
taskNum := len(*taskArr)
|
|
|
log.Println("当前任务数量:", taskNum)
|
|
|
- if taskNum <= 0 {
|
|
|
- return
|
|
|
- }
|
|
|
+ //if taskNum <= 0 {
|
|
|
//计算释放,发送udp
|
|
|
if !compute() {
|
|
|
if len(config.Cnum) <= 0 {
|
|
|
+ log.Println("当前实例为空,无需释放",config.Cnum,)
|
|
|
return
|
|
|
}
|
|
|
tmpIid := config.Cnum[0]
|
|
|
- go func() {
|
|
|
+ go func(tmpIid string) {
|
|
|
DeleteNode.Reset(time.Minute * 50)
|
|
|
<-DeleteNode.C
|
|
|
config.Cnum = config.Cnum[1:]
|
|
|
- }()
|
|
|
- cluster.ModifyInstanceAutoReleaseTime(tmpIid, 1)
|
|
|
- log.Println("一小时后释放实例", tmpIid)
|
|
|
- go func() {
|
|
|
+ mongodb.Del("ocr_ecs", bson.M{"ip_nw": tmpIid})
|
|
|
udpclient.WriteUdp([]byte("一小时后释放实例"), mu.OP_DELETE_DOWNLOADERCODES, &net.UDPAddr{
|
|
|
IP: net.ParseIP(tmpIid),
|
|
|
Port: qu.IntAll(config.Sysconfig["broadcast_port"]),
|
|
|
})
|
|
|
- }()
|
|
|
+ }(tmpIid)
|
|
|
+ cluster.ModifyInstanceAutoReleaseTime(tmpIid, 1)
|
|
|
+ log.Println("一小时后释放实例", tmpIid)
|
|
|
return
|
|
|
}
|
|
|
+ //}
|
|
|
if len(config.Cnum) >= qu.IntAll(config.Sysconfig["pernum"]) {
|
|
|
log.Println("实例申请上限,当前实例:", config.Cnum)
|
|
|
return
|
|
@@ -437,6 +436,9 @@ func reload(ip string) string {
|
|
|
func compute() bool {
|
|
|
nowtime := time.Now().Unix()
|
|
|
taskArrase := mongodb.Find("ocr_task", bson.M{}, `{_id:1}`, nil, false, -1, -1)
|
|
|
+ if taskArrase == nil || len(*taskArrase) == 0{
|
|
|
+ return false
|
|
|
+ }
|
|
|
stmp := (*taskArrase)[0]
|
|
|
etmp := (*taskArrase)[len(*taskArrase)-1]
|
|
|
if stmp != nil && etmp != nil {
|
|
@@ -458,10 +460,10 @@ func compute() bool {
|
|
|
"$lt": gteid,
|
|
|
}})
|
|
|
log.Println("overNum:", overNum, ",hs:", int(nowtime-stime), ",sum:", sum)
|
|
|
- if overNum == 0{
|
|
|
+ if overNum == 0 {
|
|
|
return false
|
|
|
}
|
|
|
- if overNum/int(nowtime-stime)*300 >= sum {
|
|
|
+ if overNum/int(nowtime-stime)*qu.IntAll(config.Sysconfig["corntime_consuming"]) >= sum {
|
|
|
return false
|
|
|
}
|
|
|
return true
|