fix: continue to send messages even if some channels failed (close #80)
This commit is contained in:
+6
-1
@@ -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
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user