Browse Source

fix(internal): 修复域名白名单任务处理逻辑

- 增加对域名白名单任务中 action 参数的处理,仅允许 "add" 和 "del" 操作- 优化日志输出,增加对未知 action 的警告日志- 修改配置文件中的任务交换机和队列名称
- 修正 GatewayGroup 结构体中的字段名
fusu 1 month ago
parent
commit
e8cb9e5bd0
3 changed files with 13 additions and 7 deletions
  1. 4 4
      config/local.yml
  2. 8 2
      internal/job/whitelist.go
  3. 1 1
      internal/service/globallimit.go

+ 4 - 4
config/local.yml

@@ -108,7 +108,7 @@ rabbitmq:
   tasks:
     # IP白名单更新任务
     ip_white:
-      exchange: "tasks_direct_exchange" # 使用一个统一的direct交换机
+      exchange: "tasks_direct_exchange_test" # 使用一个统一的direct交换机
       queue: "ip_white_queue_test"
       routing_key: "task.ip_white.update"
       consumer_count: 2
@@ -116,15 +116,15 @@ rabbitmq:
 
     # 用户注册后续任务(例如:发送欢迎邮件)
     user_register:
-      exchange: "tasks_direct_exchange"
-      queue: "user_register_queue"
+      exchange: "tasks_direct_exchange_test"
+      queue: "user_register_queue_test"
       routing_key: "task.user.register.notify"
       consumer_count: 3
       prefetch_count: 1
 
     # 域名白名单任务
     domain_whitelist:
-      exchange: "whitelist_topic_exchange" # Topic 类型的交换机
+      exchange: "whitelist_topic_exchange_test" # Topic 类型的交换机
       exchange_type: "topic"              # 显式指定交换机类型
       queue: "domain_whitelist_queue_test"
       routing_key: "whitelist.domain.*"   # 消费者监听的绑定键,能接收所有 domain 相关的任务

+ 8 - 2
internal/job/whitelist.go

@@ -83,10 +83,16 @@ func (j *whitelistJob) DomainConsumer(ctx context.Context) {
 
 			// Call business logic based on the action
 			var processingErr error
+			switch payload.Action {
+			case "add", "del":
+				processingErr = j.aoDunService.DomainWhiteList(ctx, payload.Domain, payload.Ip, payload.Action)
+			default:
+				processingErr = fmt.Errorf("unknown action: %s", payload.Action)
+				j.logger.Warn("Received unknown action in domain whitelist task", zap.String("action", payload.Action), zap.String("domain", payload.Domain))
+			}
 
-			processingErr = j.aoDunService.DomainWhiteList(ctx, payload.Domain,payload.Ip, payload.Action)
 			if processingErr == nil {
-				j.logger.Info("Successfully processed 'delete' domain whitelist task", zap.String("domain", payload.Domain))
+				j.logger.Info("Successfully processed domain whitelist task", zap.String("action", payload.Action), zap.String("domain", payload.Domain))
 			}
 
 			// 在循环的最后,根据 processingErr 的状态统一处理 Ack/Nack

+ 1 - 1
internal/service/globallimit.go

@@ -231,7 +231,7 @@ func (s *globalLimitService) AddGlobalLimit(ctx context.Context, req v1.GlobalLi
 		return err
 	}
 	err = s.gateWayGroupRep.EditGatewayGroup(ctx, &model.GatewayGroup{
-		RuleId: gatewayGroupId,
+		Id: gatewayGroupId,
 		HostId: req.HostId,
 	})
 	return nil