From ab033f3b2e4ae515e0fe1e972d649e7c221e568b Mon Sep 17 00:00:00 2001 From: Akkia Date: Fri, 15 Apr 2022 10:55:21 +0800 Subject: [PATCH] =?UTF-8?q?update:=20=E8=B0=83=E5=BA=A6=E5=A4=B1=E8=B4=A5?= =?UTF-8?q?=E7=9A=84=E8=AE=A1=E5=88=92=E4=BB=BB=E5=8A=A1=E4=BB=85=E9=80=9A?= =?UTF-8?q?=E7=9F=A5=E5=85=B6=E6=89=80=E5=B1=9E=E7=9A=84=E9=80=9A=E7=9F=A5?= =?UTF-8?q?=E7=BB=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- service/singleton/crontask.go | 22 +++++++++++----------- 1 file changed, 11 insertions(+), 11 deletions(-) diff --git a/service/singleton/crontask.go b/service/singleton/crontask.go index aef1203..956456b 100644 --- a/service/singleton/crontask.go +++ b/service/singleton/crontask.go @@ -28,8 +28,8 @@ func LoadCronTasks() { var crons []model.Cron DB.Find(&crons) var err error - errMsg := new(bytes.Buffer) var notificationTagList []string + notificationMsgMap := make(map[string]*bytes.Buffer) for i := range crons { // 旧版本计划任务可能不存在通知组 为其添加默认通知组 if crons[i].NotificationTag == "" { @@ -40,19 +40,19 @@ func LoadCronTasks() { if err == nil { Crons[crons[i].ID] = &crons[i] } else { - if errMsg.Len() == 0 { - errMsg.WriteString("调度失败的计划任务:[") + // 当前通知组首次出现 将其加入通知组列表并初始化通知组消息缓存 + if _, ok := notificationMsgMap[crons[i].NotificationTag]; !ok { + notificationTagList = append(notificationTagList, crons[i].NotificationTag) + notificationMsgMap[crons[i].NotificationTag] = bytes.NewBufferString("") + notificationMsgMap[crons[i].NotificationTag].WriteString("调度失败的计划任务:[") } - errMsg.WriteString(fmt.Sprintf("%d,", crons[i].ID)) - notificationTagList = append(notificationTagList, crons[i].NotificationTag) + notificationMsgMap[crons[i].NotificationTag].WriteString(fmt.Sprintf("%d,", crons[i].ID)) } } - if errMsg.Len() > 0 { - msg := errMsg.String() + "] 这些任务将无法正常执行,请进入后点重新修改保存。" - for _, tag := range notificationTagList { - // 向调度错误的计划任务所包含的所有通知组发送通知 - SendNotification(tag, msg, false) - } + // 向注册错误的计划任务所在通知组发送通知 + for _, tag := range notificationTagList { + notificationMsgMap[tag].WriteString("] 这些任务将无法正常执行,请进入后点重新修改保存。") + SendNotification(tag, notificationMsgMap[tag].String(), false) } Cron.Start() }