Commit 0d78ac63 authored by szh's avatar szh

add emailhistory

parent d87dcb1d
......@@ -40,5 +40,6 @@ require (
golang.org/x/image v0.0.0-20190910094157-69e4b8554b2a // indirect
google.golang.org/grpc v1.23.1
gopkg.in/go-playground/validator.v8 v8.18.2
gopkg.in/gomail.v2 v2.0.0-20160411212932-81ebce5c23df
gopkg.in/yaml.v2 v2.2.2
)
......@@ -43,6 +43,7 @@ github.com/dgrijalva/jwt-go v0.0.0-20171019215719-dbeaa9332f19/go.mod h1:E3ru+11
github.com/dgryski/go-farm v0.0.0-20180109070241-2de33835d102/go.mod h1:SqUrOPUnsFjfmXRMNPybcSiG0BgUW2AuFH8PAnS2iTw=
github.com/fortytw2/leaktest v1.3.0/go.mod h1:jDsjWgpAGjm2CA7WthBh/CdZYEPF31XHquHwclZch5g=
github.com/fsnotify/fsnotify v1.4.7/go.mod h1:jwhsz4b93w/PPRr/qN1Yymfu8t87LnFCMoQvtojpjFo=
github.com/fvbock/endless v0.0.0-20170109170031-447134032cb6 h1:6VSn3hB5U5GeA6kQw4TwWIWbOhtvR2hmbBJnTOtqTWc=
github.com/fvbock/endless v0.0.0-20170109170031-447134032cb6/go.mod h1:YxOVT5+yHzKvwhsiSIWmbAYM3Dr9AEEbER2dVayfBkg=
github.com/gin-contrib/sse v0.0.0-20170109093832-22d885f9ecc7 h1:AzN37oI0cOS+cougNAV9szl6CVoj2RYwzS3DpUQNtlY=
github.com/gin-contrib/sse v0.0.0-20170109093832-22d885f9ecc7/go.mod h1:VJ0WA2NBN22VlZ2dKZQPAPnyWw5XTlK1KymzLKsr59s=
......@@ -190,6 +191,8 @@ gopkg.in/go-playground/validator.v8 v8.0.0-20170730050235-5f1438d3fca6/go.mod h1
gopkg.in/go-playground/validator.v8 v8.18.2 h1:lFB4DoMU6B626w8ny76MV7VX6W2VHct2GVOI3xgiMrQ=
gopkg.in/go-playground/validator.v8 v8.18.2/go.mod h1:RX2a/7Ha8BgOhfk7j780h4/u/RRjR0eouCJSH80/M2Y=
gopkg.in/go-playground/webhooks.v5 v5.2.0/go.mod h1:LZbya/qLVdbqDR1aKrGuWV6qbia2zCYSR5dpom2SInQ=
gopkg.in/gomail.v2 v2.0.0-20160411212932-81ebce5c23df h1:n7WqCuqOuCbNr617RXOY0AWRXxgwEyPp2z+p0+hgMuE=
gopkg.in/gomail.v2 v2.0.0-20160411212932-81ebce5c23df/go.mod h1:LRQQ+SO6ZHR7tOkpBDuZnXENFzX8qRjMDMyPD6BRkCw=
gopkg.in/natefinch/lumberjack.v2 v2.0.0-20170531160350-a96e63847dc3/go.mod h1:l0ndWWf7gzL7RNwBG7wST/UCcT4T24xpD6X8LsfU/+k=
gopkg.in/tomb.v1 v1.0.0-20141024135613-dd632973f1e7/go.mod h1:dt/ZhP58zS4L8KSrWDmTeBkI65Dw0HsyUHuEVlX15mw=
gopkg.in/tomb.v2 v2.0.0-20161208151619-d5d1b5820637/go.mod h1:BHsqpu/nsuzkT5BpiH1EMZPLyqSMM8JbIavyFACoFNk=
......
package models
type RaspEmailHistory struct {
//Model
Id int64 `json:"id" gorm:"PRIMARY_KEY"`
Addr string `json:"addr"`
Date string `json:"date"`
Error string `json:"error"`
}
func AddEmailHistory(rasp *RaspEmailHistory) error {
return db.Create(rasp).Error
}
func CheckEmailToday(rasp *RaspEmailHistory) bool {
var email RaspEmailHistory
return db.Model(&email).Where("addr = ? and date = ?",rasp.Addr,rasp.Date).First(&email).RecordNotFound()
}
\ No newline at end of file
......@@ -4,6 +4,7 @@ var JobChan chan MsgType
type MsgType struct {
Name string
Addr string
Email string
}
......
......@@ -12,6 +12,7 @@ import (
"sync"
"time"
"strings"
"chain33-pai/pkg/util"
)
func GennerPort()(port,daemonPort int,err error){
......@@ -187,6 +188,10 @@ func SendMailIfNodeError() error {
if v.NodeStatus == 1 {
continue
}
//一天只发一次
if !models.CheckEmailToday(&models.RaspEmailHistory{Addr:v.Addr,Date:util.GetMonthDay()}) {
continue
}
if v.NodeStatus == 0 && v.Email != "" {//节点未启动
fmt.Println(NODEERROR,"addr=",v.Addr,"email=",v.Email)
JobChan <- MsgType{Name:NODEERROR,Email:v.Email}
......
......@@ -3,6 +3,8 @@ package app
import (
"chain33-pai/pkg/email"
"fmt"
"chain33-pai/models"
"chain33-pai/pkg/util"
)
const (
......@@ -13,12 +15,16 @@ const (
var mailMsg = map[string]string{
"NODEERROR":"节点不能正常启动,请联系技术远程排查问题",
"NETWORKERROR":"网络出现异常,请排查家里网络是否正常上网以及网线接口是否松动",
"NODENOTSYNC":"节点不同步,尝试排查网络,一键回滚,一键恢复,重置节点等功能",
"NODENOTSYNC":"节点不同步,尝试排查网络,一键回滚,一键恢复等功能",
}
func EmailJob() error {
for {
for v:= range JobChan {
var rasp models.RaspEmailHistory
rasp.Date = util.GetMonthDay()
rasp.Addr = v.Addr
rasp.Error = v.Name
switch v.Name {
case NODEERROR:
err := email.SendToMail(mailMsg[NODEERROR],v.Email)
......@@ -36,6 +42,7 @@ func EmailJob() error {
fmt.Println("SendToMail",err)
}
}
models.AddEmailHistory(&rasp)
}
}
}
......@@ -41,5 +41,9 @@ func GetLocalIP() (ipv4 *net.IPNet, err error) {
}
func GetMonthDate() string {
return time.Now().Format("2006-1")
return time.Now().Format("2006-01")
}
func GetMonthDay() string {
return time.Now().Format("2006-01-02")
}
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment