|
@@ -7,6 +7,7 @@ import (
|
|
"net/http"
|
|
"net/http"
|
|
qu "qfw/util"
|
|
qu "qfw/util"
|
|
"strings"
|
|
"strings"
|
|
|
|
+ "sync"
|
|
"time"
|
|
"time"
|
|
)
|
|
)
|
|
var (
|
|
var (
|
|
@@ -15,6 +16,8 @@ var (
|
|
idsArr []string
|
|
idsArr []string
|
|
dataTmp map[string]map[string]interface{}
|
|
dataTmp map[string]map[string]interface{}
|
|
during,isErr int64
|
|
during,isErr int64
|
|
|
|
+ test map[string]interface{}
|
|
|
|
+ updatelock sync.Mutex
|
|
)
|
|
)
|
|
func init() {
|
|
func init() {
|
|
//加载配置文件
|
|
//加载配置文件
|
|
@@ -39,6 +42,8 @@ func init() {
|
|
log.Println("准备完毕...")
|
|
log.Println("准备完毕...")
|
|
}
|
|
}
|
|
|
|
|
|
|
|
+
|
|
|
|
+
|
|
func main() {
|
|
func main() {
|
|
|
|
|
|
//http://monitor.spdata.jianyu360.com/,程序端口7811
|
|
//http://monitor.spdata.jianyu360.com/,程序端口7811
|
|
@@ -49,7 +54,7 @@ func main() {
|
|
//每隔1分钟执行一次:0 */1 * * * ? 每隔5秒执行一次:*/5 * * * * ?
|
|
//每隔1分钟执行一次:0 */1 * * * ? 每隔5秒执行一次:*/5 * * * * ?
|
|
|
|
|
|
spec :=fmt.Sprintf("0 */%d * * * ?",during)
|
|
spec :=fmt.Sprintf("0 */%d * * * ?",during)
|
|
- //spec :=fmt.Sprintf("*/%d * * * * ?",during)
|
|
|
|
|
|
+ spec =fmt.Sprintf("*/%d * * * * ?",during)
|
|
c := cron.New()
|
|
c := cron.New()
|
|
c.AddFunc(spec, func() { taskFinishing()})
|
|
c.AddFunc(spec, func() { taskFinishing()})
|
|
c.Start()
|
|
c.Start()
|
|
@@ -57,17 +62,20 @@ func main() {
|
|
}
|
|
}
|
|
|
|
|
|
func handler(w http.ResponseWriter, r *http.Request) {
|
|
func handler(w http.ResponseWriter, r *http.Request) {
|
|
|
|
+ updatelock.Lock()
|
|
r.ParseForm() //解析参数,默认是不会解析的
|
|
r.ParseForm() //解析参数,默认是不会解析的
|
|
if r.Method == "GET" {
|
|
if r.Method == "GET" {
|
|
vpsid ,process,isProMail:= "",int64(0),int64(0)
|
|
vpsid ,process,isProMail:= "",int64(0),int64(0)
|
|
for k, v := range r.Form {
|
|
for k, v := range r.Form {
|
|
if k=="id" {
|
|
if k=="id" {
|
|
vpsid = strings.Join(v, "")
|
|
vpsid = strings.Join(v, "")
|
|
|
|
+ isProMail = qu.Int64All(dataTmp[vpsid]["isProMail"])
|
|
}else if k=="process" {
|
|
}else if k=="process" {
|
|
process = qu.Int64All(strings.Join(v, ""))
|
|
process = qu.Int64All(strings.Join(v, ""))
|
|
if process==0 {
|
|
if process==0 {
|
|
isProMail = 0
|
|
isProMail = 0
|
|
}
|
|
}
|
|
|
|
+
|
|
}else {
|
|
}else {
|
|
|
|
|
|
}
|
|
}
|
|
@@ -81,6 +89,7 @@ func handler(w http.ResponseWriter, r *http.Request) {
|
|
"isProMail":isProMail,
|
|
"isProMail":isProMail,
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
+
|
|
//log.Println("接收Get请求:",dataTmp[vpsid])
|
|
//log.Println("接收Get请求:",dataTmp[vpsid])
|
|
|
|
|
|
} else if r.Method == "POST" {
|
|
} else if r.Method == "POST" {
|
|
@@ -88,11 +97,17 @@ func handler(w http.ResponseWriter, r *http.Request) {
|
|
} else {
|
|
} else {
|
|
|
|
|
|
}
|
|
}
|
|
|
|
+
|
|
|
|
+ updatelock.Unlock()
|
|
}
|
|
}
|
|
|
|
|
|
//不断监听处理
|
|
//不断监听处理
|
|
func taskFinishing() {
|
|
func taskFinishing() {
|
|
- //log.Println("执行...处理一次...")
|
|
|
|
|
|
+ log.Println("...处理一次...")
|
|
|
|
+ //加锁
|
|
|
|
+ updatelock.Lock()
|
|
|
|
+
|
|
|
|
+
|
|
isVpsMailContent,isProMailContent:= "",""
|
|
isVpsMailContent,isProMailContent:= "",""
|
|
for _ , vpsid := range idsArr {
|
|
for _ , vpsid := range idsArr {
|
|
//此标识-是否正常
|
|
//此标识-是否正常
|
|
@@ -138,16 +153,23 @@ func taskFinishing() {
|
|
"isVpsMail":isVpsMail,
|
|
"isVpsMail":isVpsMail,
|
|
"isProMail" : isProMail,
|
|
"isProMail" : isProMail,
|
|
}
|
|
}
|
|
- }
|
|
|
|
|
|
|
|
|
|
+ }
|
|
|
|
|
|
|
|
+ //log.Println("处理后",isProMailContent)
|
|
if isVpsMailContent!=""{
|
|
if isVpsMailContent!=""{
|
|
log.Println("发邮件:vps异常...",isVpsMailContent)
|
|
log.Println("发邮件:vps异常...",isVpsMailContent)
|
|
- //sendErrMailApi("vps异常",isVpsMailContent)
|
|
|
|
|
|
+ sendErrMailApi("vps异常",isVpsMailContent)
|
|
}else {
|
|
}else {
|
|
if isProMailContent !="" {
|
|
if isProMailContent !="" {
|
|
log.Println("发邮件:下载器异常...",isProMailContent)
|
|
log.Println("发邮件:下载器异常...",isProMailContent)
|
|
- //sendErrMailApi("下载器异常",isProMailContent)
|
|
|
|
|
|
+ sendErrMailApi("下载器异常",isProMailContent)
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+ updatelock.Unlock()
|
|
|
|
+
|
|
}
|
|
}
|