feat: adjust async code

This commit is contained in:
engigu
2024-01-14 15:14:51 +08:00
parent 73db03ef7c
commit 8a88a3ed3e
5 changed files with 25 additions and 60 deletions
@@ -4,6 +4,7 @@ import (
"fmt"
"github.com/sirupsen/logrus"
"message-nest/models"
"message-nest/pkg/constant"
"message-nest/service/send_task_service"
"message-nest/service/send_way_service"
"strings"
@@ -14,6 +15,10 @@ const (
SendFail = 0
)
//var logger = logrus.WithFields(logrus.Fields{
// "prefix": "[Message]",
//})
func errStrIsSuccess(errStr string) int {
if errStr == "" {
return SendSuccess
@@ -41,6 +46,23 @@ func (sm *SendMessageService) LogsAndStatusMark(errStr string, status int) {
logrus.Infof("%s, 状态:%d", strings.Trim(errStr, "\n"), status)
}
// AsyncSend 异步发送一个消息任务的所有实例
func (sm *SendMessageService) AsyncSend() {
defer func() {
if r := recover(); r != nil {
logrus.Error("AsyncSend: Recovered from panic:", r)
}
}()
// 限制并发异步发送数量
constant.MaxSendTaskSemaphoreChan <- ""
defer func() {
<-constant.MaxSendTaskSemaphoreChan
}()
go sm.Send()
}
// Send 发送一个消息任务的所有实例
func (sm *SendMessageService) Send() string {
sm.Status = SendSuccess