From 933eaa6d3ef724daae39a6b2e11bc88e2ed0b5fe Mon Sep 17 00:00:00 2001 From: JustSong Date: Thu, 11 May 2023 08:53:54 +0800 Subject: [PATCH] fix: continue to send messages even if some channels failed (close #80) --- channel/group.go | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/channel/group.go b/channel/group.go index 5cb1fff..3c116d4 100644 --- a/channel/group.go +++ b/channel/group.go @@ -2,6 +2,7 @@ package channel import ( "errors" + "fmt" "message-pusher/model" "strings" ) @@ -12,6 +13,7 @@ func SendGroupMessage(message *model.Message, user *model.User, channel_ *model. if len(subChannels) != len(subTargets) { return errors.New("无效的群组消息配置,子通道数量与子目标数量不一致") } + errMessage := "" for i := 0; i < len(subChannels); i++ { message.To = subTargets[i] message.Channel = subChannels[i] @@ -24,8 +26,11 @@ func SendGroupMessage(message *model.Message, user *model.User, channel_ *model. } err = SendMessage(message, user, subChannel) if err != nil { - return errors.New("发送群组消息失败:" + err.Error()) + errMessage += fmt.Sprintf("发送群组消息子通道 %s 失败:%s\n", subChannels[i], err.Error()) } } + if errMessage != "" { + return errors.New(errMessage) + } return nil }