|
@@ -8,12 +8,15 @@ import (
|
|
"analyze/utility"
|
|
"analyze/utility"
|
|
"app.yhyue.com/moapp/jybase/common"
|
|
"app.yhyue.com/moapp/jybase/common"
|
|
"app.yhyue.com/moapp/jybase/encrypt"
|
|
"app.yhyue.com/moapp/jybase/encrypt"
|
|
|
|
+ "app.yhyue.com/moapp/jybase/mongodb"
|
|
"bp.jydev.jianyu360.cn/BaseService/pushpkg/dfa"
|
|
"bp.jydev.jianyu360.cn/BaseService/pushpkg/dfa"
|
|
|
|
+ "context"
|
|
"encoding/json"
|
|
"encoding/json"
|
|
"fmt"
|
|
"fmt"
|
|
"github.com/gogf/gf/v2/frame/g"
|
|
"github.com/gogf/gf/v2/frame/g"
|
|
"github.com/gogf/gf/v2/os/gctx"
|
|
"github.com/gogf/gf/v2/os/gctx"
|
|
"sort"
|
|
"sort"
|
|
|
|
+ "strconv"
|
|
"strings"
|
|
"strings"
|
|
"sync"
|
|
"sync"
|
|
"sync/atomic"
|
|
"sync/atomic"
|
|
@@ -75,6 +78,7 @@ func (ut *UserTask) Start() {
|
|
}
|
|
}
|
|
|
|
|
|
func (ut *UserTask) Run() {
|
|
func (ut *UserTask) Run() {
|
|
|
|
+loop:
|
|
for {
|
|
for {
|
|
select {
|
|
select {
|
|
case info := <-ut.PInfo:
|
|
case info := <-ut.PInfo:
|
|
@@ -87,7 +91,7 @@ func (ut *UserTask) Run() {
|
|
}
|
|
}
|
|
case <-ut.Ticker.C:
|
|
case <-ut.Ticker.C:
|
|
ut.ResultSave()
|
|
ut.ResultSave()
|
|
- break
|
|
|
|
|
|
+ break loop
|
|
}
|
|
}
|
|
}
|
|
}
|
|
//结束后的处理
|
|
//结束后的处理
|
|
@@ -1558,3 +1562,33 @@ func (ut *UserTask) ForMatData() error {
|
|
}
|
|
}
|
|
return nil
|
|
return nil
|
|
}
|
|
}
|
|
|
|
+
|
|
|
|
+// SendAlarmMail 生成失败发送告警邮件
|
|
|
|
+func SendAlarmMail(ctx context.Context, content string) {
|
|
|
|
+ ma := do.TaskConfig.MailAlarm
|
|
|
|
+ if len(ma.To) == 0 {
|
|
|
|
+ g.Log().Error(ctx, "离线报告告警未配置收件人邮箱")
|
|
|
|
+ return
|
|
|
|
+ }
|
|
|
|
+ to := strings.Join(ma.To, ",")
|
|
|
|
+ utility.SendRetryMailMany(ctx, ma.ReTry, to, ma.Title, content, "", "", do.GmailAuth)
|
|
|
|
+
|
|
|
|
+}
|
|
|
|
+
|
|
|
|
+var Sewx encrypt.SimpleEncrypt //微信的加密方法
|
|
|
|
+
|
|
|
|
+// SendReportMsg 报告生成后发送消息
|
|
|
|
+func SendReportMsg(ctx context.Context, mgoId string, positionId int, rId string) {
|
|
|
|
+ reportId := utility.EncodeId(mongodb.BsonIdToSId(rId))
|
|
|
|
+ msgInfo := do.TaskConfig.MessageInfo
|
|
|
|
+ pcUrl := fmt.Sprintf(msgInfo.Link.PcUrl, reportId)
|
|
|
|
+ androidUrl := fmt.Sprintf(msgInfo.Link.AndroidUrl, reportId)
|
|
|
|
+ iosUrl := fmt.Sprintf(msgInfo.Link.IosUrl, reportId)
|
|
|
|
+ now := strconv.Itoa(int(time.Now().Unix()))
|
|
|
|
+ sessData := fmt.Sprintf("%s,positionId,%s,weChatUrl", strconv.FormatInt(int64(positionId), 10), now)
|
|
|
|
+ weChatUrl := fmt.Sprintf(msgInfo.Link.WeChatUrl, Sewx.EncodeString(sessData))
|
|
|
|
+ parm := utility.MessageParam{
|
|
|
|
+ UserIds: mgoId, Title: msgInfo.Title, Content: msgInfo.Content, Link: pcUrl, AndroidUrl: androidUrl, IosUrl: iosUrl, WeChatUrl: weChatUrl, MsgType: msgInfo.MsgType,
|
|
|
|
+ }
|
|
|
|
+ do.SendMsg.SendStationMessages(ctx, parm)
|
|
|
|
+}
|