Ver código fonte

qjkk-delete-scene

xiewj 1 semana atrás
pai
commit
d5670759be

+ 13 - 0
720yun_fd_base/gis_domain/src/main/java/com/gis/domain/dto/DeleteSceneDTO.java

@@ -0,0 +1,13 @@
+package com.gis.domain.dto;
+import lombok.Data;
+
+import java.util.List;
+
+/**
+ * @author Xiewj
+ * @date 2024/4/7
+ */
+@Data
+public class DeleteSceneDTO {
+    private List<String> numList;
+}

+ 1 - 0
720yun_fd_base/gis_service/src/main/java/com/gis/service/WorkService.java

@@ -84,4 +84,5 @@ public interface WorkService extends IService<WorkEntity> {
     boolean updateOfflineStatus(String id, int offlineStatus);
     boolean updateOfflineStatusAndUrl(String id, int offlineStatus,String url);
 
+    void removeByNums(List<String> numList);
 }

+ 7 - 0
720yun_fd_base/gis_service/src/main/java/com/gis/service/impl/WorkServiceImpl.java

@@ -2104,4 +2104,11 @@ public class WorkServiceImpl extends ServiceImpl<WorkMapper, WorkEntity> impleme
         wrapper.set(WorkEntity::getOfflineUrl, url);
         return update(wrapper);
     }
+
+    @Override
+    public void removeByNums(List<String> numList) {
+        LambdaUpdateWrapper<WorkEntity> wrapper=Wrappers.lambdaUpdate();
+        wrapper.in(WorkEntity::getNum, numList);
+        remove(wrapper);
+    }
 }

+ 56 - 0
720yun_fd_consumer/src/main/java/com/gis/listener/container/DeleteQueueListener.java

@@ -0,0 +1,56 @@
+package com.gis.listener.container;
+
+import com.alibaba.fastjson.JSONObject;
+import com.gis.common.annotation.LogAnnotation;
+import com.gis.domain.dto.DeleteSceneDTO;
+import com.gis.domain.dto.DoSliceDTO;
+import com.gis.domain.entity.WorkEntity;
+import com.gis.service.FodderService;
+import com.gis.service.WorkService;
+import com.rabbitmq.client.Channel;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.amqp.core.Message;
+import org.springframework.amqp.rabbit.listener.api.ChannelAwareMessageListener;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Component;
+import org.springframework.util.ObjectUtils;
+
+import java.nio.charset.StandardCharsets;
+
+/**
+ * @author Xiewj
+ * @date 2025/3/19
+ */
+@Component
+@Slf4j
+public class DeleteQueueListener implements ChannelAwareMessageListener {
+
+    @Autowired
+    WorkService workService;
+
+
+    @Override
+    @LogAnnotation
+    public void onMessage(Message message, Channel channel) throws Exception {
+
+        if (ObjectUtils.isEmpty(message.getBody())) {
+            log.error("消息内容为空,退出构建,当前服务器id:{}" );
+            return;
+        }
+        long deliveryTag = message.getMessageProperties().getDeliveryTag();
+        try {
+            String msg = new String(message.getBody(), StandardCharsets.UTF_8);
+            String messageId = message.getMessageProperties().getMessageId();
+            log.info("场景doSliceQueue开始,id:{},deliveryTag:{},消息体:{}", messageId,deliveryTag,msg);
+            DeleteSceneDTO dto = JSONObject.parseObject(msg, DeleteSceneDTO.class);
+            if (dto != null && dto.getNumList() != null) {
+               workService.removeByNums(dto.getNumList());
+            }
+        }catch (Exception e){
+            e.printStackTrace();
+            log.error("场景doSliceQueue报错{}",e.getMessage());
+        }finally {
+            channel.basicAck(deliveryTag, false);
+        }
+    }
+}

+ 24 - 1
720yun_fd_consumer/src/main/java/com/gis/listener/container/RabbitMQConfig.java

@@ -37,6 +37,10 @@ public class RabbitMQConfig {
     @Value("${queue.qjkk-work-offline}")
     String workOffline;
 
+
+    @Value("${queue.qjkk-delete-scene}")
+    String qjkkDeleteScene;
+
     @Autowired
     QueueNameService queueNameService;
     @Autowired
@@ -51,6 +55,8 @@ public class RabbitMQConfig {
     SceneQueueListener sceneQueueListener;
     @Autowired
     WorkOfflineListener workOfflineListener;
+    @Autowired
+    DeleteQueueListener deleteQueueListener;
 
     @Bean
     public Queue doSliceQueue() {
@@ -81,7 +87,10 @@ public class RabbitMQConfig {
         return new Queue(workOffline, true, false, false);
     }
 
-
+    @Bean
+    public Queue deleteQueueQueue() {
+        return new Queue(qjkkDeleteScene, true, false, false);
+    }
 
     @Bean
     public SimpleMessageListenerContainer doSliceQueueContainer(ConnectionFactory connectionFactory) {
@@ -163,4 +172,18 @@ public class RabbitMQConfig {
         container.setErrorHandler(t -> log.error("workOfflineListener  监听器发生异常", t));
         return container;
     }
+
+    @Bean
+    public SimpleMessageListenerContainer deleteSceneContainer(ConnectionFactory connectionFactory) {
+        SimpleMessageListenerContainer container = new SimpleMessageListenerContainer(connectionFactory);
+        log.info("workOfflineListener 启动,监听队列-{},动态伸缩启动-{}", qjkkDeleteScene, !isDynamic);
+        container.setQueueNames(qjkkDeleteScene);
+        container.setMessageListener(deleteQueueListener);
+        container.setAutoStartup(!isDynamic); // 根据配置决定是否自动启动
+        container.setPrefetchCount(1);
+        container.setBatchSize(3);
+        container.setAcknowledgeMode(AcknowledgeMode.MANUAL);
+        container.setErrorHandler(t -> log.error("workOfflineListener  监听器发生异常", t));
+        return container;
+    }
 }

+ 1 - 0
720yun_fd_consumer/src/main/resources/application-pro.yml

@@ -83,6 +83,7 @@ queue:
     update-scene-title: update-scene-title
     delete-scene: delete-scene
     update-scene-status: update-scene-status
+    qjkk-delete-scene: qjkk-delete-scene
 
 config:
     bashPath: 720yun_fd_manage/

+ 1 - 0
720yun_fd_consumer/src/main/resources/application-proAws.yml

@@ -83,6 +83,7 @@ queue:
     update-scene-title: update-scene-title
     delete-scene: delete-scene
     update-scene-status: update-scene-status
+    qjkk-delete-scene: qjkk-delete-scene
 
 config:
     bashPath: 720yun_fd_manage/

+ 1 - 0
720yun_fd_consumer/src/main/resources/application-sit.yml

@@ -83,6 +83,7 @@ queue:
     update-scene-title: update-scene-title
     delete-scene: delete-scene
     update-scene-status: update-scene-status
+    qjkk-delete-scene: qjkk-delete-scene
 
 config:
     bashPath: 720yun_fd_manage/

+ 1 - 0
720yun_fd_consumer/src/main/resources/application-sitAws.yml

@@ -81,6 +81,7 @@ queue:
     update-scene-title: update-scene-title
     delete-scene: delete-scene
     update-scene-status: update-scene-status
+    qjkk-delete-scene: qjkk-delete-scene
 
 config:
     bashPath: 720yun_fd_manage/

+ 1 - 0
720yun_fd_manage/src/main/resources/application-pro.yml

@@ -105,6 +105,7 @@ queue:
     update-scene-title: update-scene-title
     delete-scene: delete-scene
     update-scene-status: update-scene-status
+    qjkk-delete-scene: qjkk-delete-scene
 
 config:
     bashPath: ${project.name}/

+ 1 - 0
720yun_fd_manage/src/main/resources/application-proAws.yml

@@ -97,6 +97,7 @@ queue:
     update-scene-title: update-scene-title
     delete-scene: delete-scene
     update-scene-status: update-scene-status
+    qjkk-delete-scene: qjkk-delete-scene
 
 config:
     bashPath: ${project.name}/

+ 1 - 0
720yun_fd_manage/src/main/resources/application-sit.yml

@@ -97,6 +97,7 @@ queue:
     update-scene-title: update-scene-title
     delete-scene: delete-scene
     update-scene-status: update-scene-status
+    qjkk-delete-scene: qjkk-delete-scene
 
 config:
     bashPath: ${project.name}/

+ 1 - 0
720yun_fd_manage/src/main/resources/application-sitAws.yml

@@ -97,6 +97,7 @@ queue:
     update-scene-title: update-scene-title
     delete-scene: delete-scene
     update-scene-status: update-scene-status
+    qjkk-delete-scene: qjkk-delete-scene
 
 config:
     bashPath: ${project.name}/