mirror of
				https://github.com/TeaOSLab/EdgeAPI.git
				synced 2025-11-04 07:50:25 +08:00 
			
		
		
		
	节点健康检查失败时增加节点名称和节点IP提示
This commit is contained in:
		@@ -111,8 +111,11 @@ func (this *MessageDAO) FindEnabledMessage(tx *dbs.Tx, id int64) (*Message, erro
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// CreateClusterMessage 创建集群消息
 | 
			
		||||
func (this *MessageDAO) CreateClusterMessage(tx *dbs.Tx, role string, clusterId int64, messageType MessageType, level string, subject string, body string, paramsJSON []byte) error {
 | 
			
		||||
	_, err := this.createMessage(tx, role, clusterId, 0, messageType, level, subject, body, paramsJSON)
 | 
			
		||||
func (this *MessageDAO) CreateClusterMessage(tx *dbs.Tx, role string, clusterId int64, messageType MessageType, level string, subject string, shortBody string, body string, paramsJSON []byte) error {
 | 
			
		||||
	if len(shortBody) == 0 {
 | 
			
		||||
		shortBody = body
 | 
			
		||||
	}
 | 
			
		||||
	_, err := this.createMessage(tx, role, clusterId, 0, messageType, level, subject, shortBody, paramsJSON)
 | 
			
		||||
	if err != nil {
 | 
			
		||||
		return err
 | 
			
		||||
	}
 | 
			
		||||
 
 | 
			
		||||
@@ -12,7 +12,7 @@ func TestMessageDAO_CreateClusterMessage(t *testing.T) {
 | 
			
		||||
	var tx *dbs.Tx
 | 
			
		||||
 | 
			
		||||
	dao := NewMessageDAO()
 | 
			
		||||
	err := dao.CreateClusterMessage(tx, nodeconfigs.NodeRoleNode, 1, "test", "error", "123", "123", []byte("456"))
 | 
			
		||||
	err := dao.CreateClusterMessage(tx, nodeconfigs.NodeRoleNode, 1, "test", "error", "123", "123", "123", []byte("456"))
 | 
			
		||||
	if err != nil {
 | 
			
		||||
		t.Fatal(err)
 | 
			
		||||
	}
 | 
			
		||||
 
 | 
			
		||||
@@ -8,20 +8,6 @@ import (
 | 
			
		||||
	"testing"
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
func TestMessageTaskDAO_FindSendingMessageTasks(t *testing.T) {
 | 
			
		||||
	dbs.NotifyReady()
 | 
			
		||||
 | 
			
		||||
	var tx *dbs.Tx
 | 
			
		||||
	tasks, err := models.NewMessageTaskDAO().FindSendingMessageTasks(tx, 100)
 | 
			
		||||
	if err != nil {
 | 
			
		||||
		t.Fatal(err)
 | 
			
		||||
	}
 | 
			
		||||
	t.Log(len(tasks), "tasks")
 | 
			
		||||
	for _, task := range tasks {
 | 
			
		||||
		t.Log("task:", task.Id, "recipient:", task.RecipientId)
 | 
			
		||||
	}
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func TestMessageTaskDAO_CleanExpiredMessageTasks(t *testing.T) {
 | 
			
		||||
	var dao = models.NewMessageTaskDAO()
 | 
			
		||||
	var tx *dbs.Tx
 | 
			
		||||
 
 | 
			
		||||
@@ -10,6 +10,8 @@ import (
 | 
			
		||||
	"github.com/TeaOSLab/EdgeCommon/pkg/nodeconfigs"
 | 
			
		||||
	"github.com/TeaOSLab/EdgeCommon/pkg/serverconfigs"
 | 
			
		||||
	"github.com/iwind/TeaGo/maps"
 | 
			
		||||
	"github.com/iwind/TeaGo/types"
 | 
			
		||||
	"strings"
 | 
			
		||||
	"time"
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
@@ -127,8 +129,32 @@ func (this *HealthCheckClusterTask) Loop() error {
 | 
			
		||||
			if err != nil {
 | 
			
		||||
				return err
 | 
			
		||||
			}
 | 
			
		||||
			var message = "有" + numberutils.FormatInt(len(failedResults)) + "个节点IP在健康检查中出现问题"
 | 
			
		||||
			err = models.NewMessageDAO().CreateClusterMessage(nil, nodeconfigs.NodeRoleNode, this.clusterId, models.MessageTypeHealthCheckFailed, models.MessageLevelError, message, message, failedResultsJSON)
 | 
			
		||||
			var subject = "有" + numberutils.FormatInt(len(failedResults)) + "个节点IP在健康检查中出现问题"
 | 
			
		||||
			var message = "有" + numberutils.FormatInt(len(failedResults)) + "个节点IP在健康检查中出现问题:"
 | 
			
		||||
			var failedDescriptions = []string{}
 | 
			
		||||
			var failedIndex int
 | 
			
		||||
			for _, result := range results {
 | 
			
		||||
				if result.IsOk || result.Node == nil {
 | 
			
		||||
					continue
 | 
			
		||||
				}
 | 
			
		||||
				failedIndex++
 | 
			
		||||
				failedDescriptions = append(failedDescriptions, "节点"+types.String(failedIndex)+":"+result.Node.Name+",IP:"+result.NodeAddr)
 | 
			
		||||
			}
 | 
			
		||||
 | 
			
		||||
			const maxNodeDescriptions = 10
 | 
			
		||||
			var isOverMax = false
 | 
			
		||||
			if len(failedDescriptions) > maxNodeDescriptions {
 | 
			
		||||
				failedDescriptions = failedDescriptions[:maxNodeDescriptions]
 | 
			
		||||
				isOverMax = true
 | 
			
		||||
			}
 | 
			
		||||
			message += strings.Join(failedDescriptions, ";")
 | 
			
		||||
			if isOverMax {
 | 
			
		||||
				message += " ..."
 | 
			
		||||
			} else {
 | 
			
		||||
				message += "。"
 | 
			
		||||
			}
 | 
			
		||||
 | 
			
		||||
			err = models.NewMessageDAO().CreateClusterMessage(nil, nodeconfigs.NodeRoleNode, this.clusterId, models.MessageTypeHealthCheckFailed, models.MessageLevelError, subject, subject, message, failedResultsJSON)
 | 
			
		||||
			if err != nil {
 | 
			
		||||
				return err
 | 
			
		||||
			}
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user