[Cmii][ImageSync] - reformat agent-go - 2

This commit is contained in:
zeaslity
2024-03-29 14:46:11 +08:00
parent 1be48aaac2
commit 1d32d7dd04
6 changed files with 42 additions and 39 deletions

View File

@@ -37,7 +37,7 @@ type RabbitQueue struct {
// 连接属性
RabbitProp *ConnectProperty
// 底层连接tcp信息
RabbitConnectInfo RabbitTCPConnectInfo
RabbitConnectInfo *RabbitTCPConnectInfo
// 返回消息队列
ReceiveChan *RabbitReceiveChan
}
@@ -79,7 +79,7 @@ var instance *amqp.Connection
var once sync.Once
// 初始化 Singleton 实例的函数
func createInstance(rabbitConnectInfo RabbitTCPConnectInfo) func() {
func createInstance(rabbitConnectInfo *RabbitTCPConnectInfo) {
// 在这里进行 Singleton 的初始化操作
// 获取RabbitMQ的连接地址
@@ -92,15 +92,16 @@ func createInstance(rabbitConnectInfo RabbitTCPConnectInfo) func() {
}
instance = connection
return nil
}
// GetInstance 获取全局唯一的 Singleton 实例的函数
func GetInstance(rabbitConnectInfo RabbitTCPConnectInfo) *amqp.Connection {
func GetInstance(rabbitConnectInfo *RabbitTCPConnectInfo) *amqp.Connection {
// 使用 sync.Once 确保 createInstance 只会被调用一次
// todo 理解
once.Do(createInstance(rabbitConnectInfo))
once.Do(func() {
createInstance(rabbitConnectInfo)
})
return instance
}
@@ -185,24 +186,25 @@ func (r *RabbitQueue) Close() error {
func (r *RabbitQueue) Handle() chan bool {
deliveries := r.Read(true)
forverHandle := make(chan bool)
foreverHandle := make(chan bool)
// 死循环处理Octopus Message
for delivery := range deliveries {
P.Submit(func() {
for delivery := range deliveries {
var om *OctopusMessage
err := json.Unmarshal(delivery.Body, &om)
if err != nil {
log.Error(fmt.Sprintf("octopus message convert to json is wrong! msg is => %s", delivery.Body))
// 保存到某处
continue
var om *OctopusMessage
err := json.Unmarshal(delivery.Body, &om)
if err != nil {
log.Error(fmt.Sprintf("octopus message convert to json is wrong! msg is => %s", delivery.Body))
// 保存到某处
continue
}
// 策略模式 处理消息
P.Submit(func() {
om.HandleMsg(r.ReceiveChan)
})
}
// 策略模式 处理消息
P.Submit(func() {
om.HandleMsg(r.ReceiveChan)
})
}
return forverHandle
})
return foreverHandle
}
// Send 向RabbitMQ中发送消息
@@ -257,7 +259,7 @@ func (r *RabbitQueue) Read(autoAck bool) <-chan amqp.Delivery {
return msgs
}
func parseRabbitMQEndpoint(rabbitConnectInfo RabbitTCPConnectInfo) string {
func parseRabbitMQEndpoint(rabbitConnectInfo *RabbitTCPConnectInfo) string {
var res strings.Builder