123456789101112131415161718192021222324252627282930313233343536373839404142434445464748 |
- package main
- import (
- "fmt"
- "io/ioutil"
- "log"
- "net/http"
- "sync"
- "time"
- )
- var udptaskmap = &sync.Map{}
- var tomail string
- var api string
- type udpNode struct {
- timestamp int64
- }
- func checkMailJob() {
- //阿里云内网无法发送邮件
- jkmail, _ := Config["jkmail"].(map[string]interface{})
- if jkmail != nil {
- tomail, _ = jkmail["to"].(string)
- api, _ = jkmail["api"].(string)
- }
- log.Println("start check mail Job", tomail, Config["jkmail"])
- for {
- udptaskmap.Range(func(k, v interface{}) bool {
- now := time.Now().Unix()
- node, _ := v.(*udpNode)
- if now-node.timestamp >= 600 {
- udptaskmap.Delete(k)
- res, err := http.Get(fmt.Sprintf("%s?to=%s&title=%s&body=%s", api, tomail, "extract_control-warning",k.(string)))
- if err == nil {
- defer res.Body.Close()
- read, err := ioutil.ReadAll(res.Body)
- log.Println("控制中心-邮件发送成功:", string(read), err)
- }else {
- log.Println("控制中心-邮件发送异常:", err)
- }
- }
- return true
- })
- time.Sleep(60 * time.Second)
- }
- }
|