fix: continue to send messages even if some channels failed (close #80)

This commit is contained in:
JustSong
2023-05-11 08:53:54 +08:00
parent 7185490ba9
commit 933eaa6d3e
+6 -1
View File
@@ -2,6 +2,7 @@ package channel
import ( import (
"errors" "errors"
"fmt"
"message-pusher/model" "message-pusher/model"
"strings" "strings"
) )
@@ -12,6 +13,7 @@ func SendGroupMessage(message *model.Message, user *model.User, channel_ *model.
if len(subChannels) != len(subTargets) { if len(subChannels) != len(subTargets) {
return errors.New("无效的群组消息配置,子通道数量与子目标数量不一致") return errors.New("无效的群组消息配置,子通道数量与子目标数量不一致")
} }
errMessage := ""
for i := 0; i < len(subChannels); i++ { for i := 0; i < len(subChannels); i++ {
message.To = subTargets[i] message.To = subTargets[i]
message.Channel = subChannels[i] message.Channel = subChannels[i]
@@ -24,8 +26,11 @@ func SendGroupMessage(message *model.Message, user *model.User, channel_ *model.
} }
err = SendMessage(message, user, subChannel) err = SendMessage(message, user, subChannel)
if err != nil { 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 return nil
} }