From fa013c1974d6acd555d2b614fb7b9346bafc6289 Mon Sep 17 00:00:00 2001 From: shahaibo <1023316923@qq.com> Date: Fri, 27 Sep 2024 16:24:45 +0800 Subject: [PATCH] TASK:aida; --- .../da/common/RabbitMQ/GenerateConsumer.java | 28 ++++--- .../com/ai/da/common/RabbitMQ/MQConfig.java | 84 +++++-------------- .../ai/da/common/RabbitMQ/MQPublisher.java | 15 ++-- .../common/RabbitMQ/RabbitMQProperties.java | 30 +++++++ .../com/ai/da/common/RabbitMQ/SRConsumer.java | 9 +- src/main/resources/application-dev.properties | 14 ++-- .../resources/application-prod.properties | 14 ++-- .../resources/application-test.properties | 14 ++-- 8 files changed, 100 insertions(+), 108 deletions(-) create mode 100644 src/main/java/com/ai/da/common/RabbitMQ/RabbitMQProperties.java diff --git a/src/main/java/com/ai/da/common/RabbitMQ/GenerateConsumer.java b/src/main/java/com/ai/da/common/RabbitMQ/GenerateConsumer.java index 0c5ea013..423c5892 100644 --- a/src/main/java/com/ai/da/common/RabbitMQ/GenerateConsumer.java +++ b/src/main/java/com/ai/da/common/RabbitMQ/GenerateConsumer.java @@ -14,6 +14,7 @@ import org.apache.tomcat.jni.Time; import org.springframework.amqp.core.Message; import org.springframework.amqp.rabbit.annotation.RabbitHandler; import org.springframework.amqp.rabbit.annotation.RabbitListener; +import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Component; @@ -30,6 +31,9 @@ public class GenerateConsumer { @Resource private GenerateService generateService; + @Autowired + private RabbitMQProperties rabbitMQProperties; + @Resource private RedisUtil redisUtil; @@ -243,73 +247,73 @@ public class GenerateConsumer { log.info("============ProcessRelightResult End listening=========="); } - @RabbitListener(queues = MQConfig.GENERATE_QUEUE) + @RabbitListener(queues = "#{rabbitMQProperties.queues.generate}") @RabbitHandler public void generateConsumer1(Message msg, Channel channel) { generate(msg, channel, "consumer 1"); } - @RabbitListener(queues = MQConfig.GENERATE_QUEUE) + @RabbitListener(queues = "#{rabbitMQProperties.queues.generate}") @RabbitHandler public void generateConsumer2(Message msg, Channel channel) { generate(msg, channel, "consumer 2"); } - @RabbitListener(queues = MQConfig.GENERATE_QUEUE) + @RabbitListener(queues = "#{rabbitMQProperties.queues.generate}") @RabbitHandler public void generateConsumer3(Message msg, Channel channel) { generate(msg, channel, "consumer 3"); } - @RabbitListener(queues = MQConfig.GENERATE_QUEUE) + @RabbitListener(queues = "#{rabbitMQProperties.queues.generate}") @RabbitHandler public void generateConsumer4(Message msg, Channel channel) { generate(msg, channel, "consumer 4"); } - @RabbitListener(queues = MQConfig.GENERATE_QUEUE) + @RabbitListener(queues = "#{rabbitMQProperties.queues.generate}") @RabbitHandler public void generateConsumer5(Message msg, Channel channel) { generate(msg, channel, "consumer 5"); } - @RabbitListener(queues = MQConfig.GENERATE_QUEUE) + @RabbitListener(queues = "#{rabbitMQProperties.queues.generate}") @RabbitHandler public void generateConsumer6(Message msg, Channel channel) { generate(msg, channel, "consumer 6"); } - @RabbitListener(queues = MQConfig.GENERATE_QUEUE) + @RabbitListener(queues = "#{rabbitMQProperties.queues.generate}") @RabbitHandler public void generateConsumer7(Message msg, Channel channel) { generate(msg, channel, "consumer 7"); } - @RabbitListener(queues = MQConfig.GENERATE_QUEUE) + @RabbitListener(queues = "#{rabbitMQProperties.queues.generate}") @RabbitHandler public void generateConsumer8(Message msg, Channel channel) { generate(msg, channel, "consumer 8"); } - @RabbitListener(queues = MQConfig.GENERATE_QUEUE) + @RabbitListener(queues = "#{rabbitMQProperties.queues.generate}") @RabbitHandler public void generateConsumer9(Message msg, Channel channel) { generate(msg, channel, "consumer 9"); } - @RabbitListener(queues = MQConfig.GENERATE_RESULT_QUEUE) + @RabbitListener(queues = "#{rabbitMQProperties.queues.generateResult}") @RabbitHandler public void getGenerateResult(Message msg, Channel channel) { processGenerateResult(msg, channel); } - @RabbitListener(queues = MQConfig.TO_PRODUCT_IMAGE_RESULT_QUEUE) + @RabbitListener(queues = "#{rabbitMQProperties.queues.toProductImageResult}") @RabbitHandler public void getToProductImageResult(Message msg, Channel channel) { processToProductImageResult(msg, channel); } - @RabbitListener(queues = MQConfig.RELIGHT_RESULT_QUEUE) + @RabbitListener(queues = "#{rabbitMQProperties.queues.relightResult}") @RabbitHandler public void getRelightResult(Message msg, Channel channel) { processRelightResult(msg, channel); diff --git a/src/main/java/com/ai/da/common/RabbitMQ/MQConfig.java b/src/main/java/com/ai/da/common/RabbitMQ/MQConfig.java index cc1076be..493c5a61 100644 --- a/src/main/java/com/ai/da/common/RabbitMQ/MQConfig.java +++ b/src/main/java/com/ai/da/common/RabbitMQ/MQConfig.java @@ -1,89 +1,43 @@ package com.ai.da.common.RabbitMQ; import org.springframework.amqp.core.Queue; -import org.springframework.beans.factory.annotation.Value; +import org.springframework.beans.factory.annotation.Autowired; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; -import javax.annotation.PostConstruct; - @Configuration public class MQConfig { - // 定义为非静态变量 - @Value("${generate.exchange}") - private String generateExchange; + @Autowired + private RabbitMQProperties rabbitMQProperties; - @Value("${generate.queue}") - private String generateQueue; - - @Value("${sr.queue}") - private String srQueue; - - @Value("${sr.result.queue}") - private String srResultQueue; - - @Value("${generate.result.queue}") - private String generateResultQueue; - - @Value("${to.product.image.result.queue}") - private String toProductImageResultQueue; - - @Value("${relight.result.queue}") - private String relightResultQueue; - - // 定义静态变量以供外部访问 - public static String GENERATE_EXCHANGE; - public static String GENERATE_QUEUE; - public static String SR_QUEUE; - public static String SR_RESULT_QUEUE; - public static String GENERATE_RESULT_QUEUE; - public static String TO_PRODUCT_IMAGE_RESULT_QUEUE; - public static String RELIGHT_RESULT_QUEUE; - - // 使用 @PostConstruct 在 bean 初始化之后,将实例变量值赋给静态变量 - @PostConstruct - public void init() { - GENERATE_EXCHANGE = this.generateExchange; - GENERATE_QUEUE = this.generateQueue; - SR_QUEUE = this.srQueue; - SR_RESULT_QUEUE = this.srResultQueue; - GENERATE_RESULT_QUEUE = this.generateResultQueue; - TO_PRODUCT_IMAGE_RESULT_QUEUE = this.toProductImageResultQueue; - RELIGHT_RESULT_QUEUE = this.relightResultQueue; - } - public MQConfig() { - } - -// @Bean -// FanoutExchange fanoutRasaExchange() { -// return new FanoutExchange(GENERATE_EXCHANGE_FANOUT); -// } - - /** - * 创建队列,使用工作模式,不用定义交换机 - */ @Bean public Queue generateQueue() { - return new Queue(GENERATE_QUEUE); + return new Queue(rabbitMQProperties.getQueues().getGenerate()); } @Bean public Queue SRQueue() { - return new Queue(SR_QUEUE); + return new Queue(rabbitMQProperties.getQueues().getSr()); } @Bean public Queue SRResultQueue() { - return new Queue(SR_RESULT_QUEUE); + return new Queue(rabbitMQProperties.getQueues().getSrResult()); } - /** - * 将队列绑定到交换机上【队列订阅交换机】 - */ -// @Bean -// Binding bindingExchangeRasa() { -// return BindingBuilder.bind(queueRasa()).to(fanoutRasaExchange()); -// } + @Bean + public Queue generateResultQueue() { + return new Queue(rabbitMQProperties.getQueues().getGenerateResult()); + } + @Bean + public Queue toProductImageResultQueue() { + return new Queue(rabbitMQProperties.getQueues().getToProductImageResult()); + } + + @Bean + public Queue relightResultQueue() { + return new Queue(rabbitMQProperties.getQueues().getRelightResult()); + } } diff --git a/src/main/java/com/ai/da/common/RabbitMQ/MQPublisher.java b/src/main/java/com/ai/da/common/RabbitMQ/MQPublisher.java index 5cffa019..56b4b724 100644 --- a/src/main/java/com/ai/da/common/RabbitMQ/MQPublisher.java +++ b/src/main/java/com/ai/da/common/RabbitMQ/MQPublisher.java @@ -2,6 +2,7 @@ package com.ai.da.common.RabbitMQ; import lombok.extern.slf4j.Slf4j; import org.springframework.amqp.core.AmqpTemplate; +import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Component; import javax.annotation.Resource; @@ -10,19 +11,19 @@ import javax.annotation.Resource; @Component public class MQPublisher { -// private final String url = "http://localhost:15672/api/queues/%2f/generate-queue"; + @Autowired + private RabbitMQProperties rabbitMQProperties; - @Resource + @Autowired private AmqpTemplate amqpTemplate; public void sendGenerateMessage(String mm) { - log.info("send message:" + mm); - amqpTemplate.convertAndSend(MQConfig.GENERATE_QUEUE, mm); + log.info("send message: " + mm); + amqpTemplate.convertAndSend(rabbitMQProperties.getQueues().getGenerate(), mm); } public void sendSRMessage(String mm) { - log.info("send message:" + mm); - amqpTemplate.convertAndSend(MQConfig.SR_QUEUE, mm); + log.info("send message: " + mm); + amqpTemplate.convertAndSend(rabbitMQProperties.getQueues().getSr(), mm); } - } diff --git a/src/main/java/com/ai/da/common/RabbitMQ/RabbitMQProperties.java b/src/main/java/com/ai/da/common/RabbitMQ/RabbitMQProperties.java new file mode 100644 index 00000000..29a2e1de --- /dev/null +++ b/src/main/java/com/ai/da/common/RabbitMQ/RabbitMQProperties.java @@ -0,0 +1,30 @@ +package com.ai.da.common.RabbitMQ; + +import lombok.Data; +import org.springframework.boot.context.properties.ConfigurationProperties; +import org.springframework.stereotype.Component; + +@Component +@ConfigurationProperties(prefix = "rabbitmq") +@Data +public class RabbitMQProperties { + + private Queues queues; + private Exchange exchange; + + @Data + public static class Queues { + private String generate; + private String sr; + private String srResult; + private String generateResult; + private String toProductImageResult; + private String relightResult; + } + + @Data + public static class Exchange { + private String generate; + } +} + diff --git a/src/main/java/com/ai/da/common/RabbitMQ/SRConsumer.java b/src/main/java/com/ai/da/common/RabbitMQ/SRConsumer.java index 6ad261bd..0bd56344 100644 --- a/src/main/java/com/ai/da/common/RabbitMQ/SRConsumer.java +++ b/src/main/java/com/ai/da/common/RabbitMQ/SRConsumer.java @@ -15,6 +15,7 @@ import lombok.extern.slf4j.Slf4j; import org.springframework.amqp.core.Message; import org.springframework.amqp.rabbit.annotation.RabbitHandler; import org.springframework.amqp.rabbit.annotation.RabbitListener; +import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Component; @@ -27,6 +28,9 @@ import java.util.HashMap; @Component public class SRConsumer { + @Autowired + private RabbitMQProperties rabbitMQProperties; + @Resource private RedisUtil redisUtil; @@ -218,14 +222,13 @@ public class SRConsumer { taskListService.updateTaskStatusOrOutputRedis(uniqueId, "fail", null); } - @RabbitListener(queues = MQConfig.SR_QUEUE) + @RabbitListener(queues = "#{rabbitMQProperties.queues.sr}") @RabbitHandler public void SRConsumer1(Message msg, Channel channel) { superResolution(msg, channel, "consumer 1"); } - - @RabbitListener(queues = MQConfig.SR_RESULT_QUEUE) + @RabbitListener(queues = "#{rabbitMQProperties.queues.srResult}") @RabbitHandler public void SRResultConsumer1(Message msg, Channel channel) { getSRResult(msg, channel, "consumer 1"); diff --git a/src/main/resources/application-dev.properties b/src/main/resources/application-dev.properties index 9438317b..2706ce28 100644 --- a/src/main/resources/application-dev.properties +++ b/src/main/resources/application-dev.properties @@ -98,10 +98,10 @@ aws.s3.secretKey=LNIwFFB27/QedtZ+Q/viVUoX9F5x1DbuM8N0DkD8 aws.s3.regionName=ap-east-1 # RabbitMQ Exchange and Queue configurations -generate.exchange=generate-exchange -generate.queue=generate-queue-dev -sr.queue=SR-queue-dev -sr.result.queue=SuperResolution-dev -generate.result.queue=GenerateImage-dev -to.product.image.result.queue=ToProductImage-dev -relight.result.queue=Relight-dev \ No newline at end of file +rabbitmq.queues.generate=generate-queue-dev +rabbitmq.queues.sr=SR-queue-dev +rabbitmq.queues.srResult=SuperResolution-dev +rabbitmq.queues.generateResult=GenerateImage-dev +rabbitmq.queues.toProductImageResult=ToProductImage-dev +rabbitmq.queues.relightResult=Relight-dev +rabbitmq.exchange.generate=generate-exchange \ No newline at end of file diff --git a/src/main/resources/application-prod.properties b/src/main/resources/application-prod.properties index 7c9ee94c..dd2c47ff 100644 --- a/src/main/resources/application-prod.properties +++ b/src/main/resources/application-prod.properties @@ -96,10 +96,10 @@ aws.s3.secretKey=LNIwFFB27/QedtZ+Q/viVUoX9F5x1DbuM8N0DkD8 aws.s3.regionName=ap-east-1 # RabbitMQ Exchange and Queue configurations -generate.exchange=generate-exchange -generate.queue=generate-queue-prod -sr.queue=SR-queue-prod -sr.result.queue=SuperResolution-prod -generate.result.queue=GenerateImage-prod -to.product.image.result.queue=ToProductImage-prod -relight.result.queue=Relight-prod \ No newline at end of file +rabbitmq.queues.generate=generate-queue-prod +rabbitmq.queues.sr=SR-queue-prod +rabbitmq.queues.srResult=SuperResolution-prod +rabbitmq.queues.generateResult=GenerateImage-prod +rabbitmq.queues.toProductImageResult=ToProductImage-prod +rabbitmq.queues.relightResult=Relight-prod +rabbitmq.exchange.generate=generate-exchange \ No newline at end of file diff --git a/src/main/resources/application-test.properties b/src/main/resources/application-test.properties index 9a61a086..612e6b4c 100644 --- a/src/main/resources/application-test.properties +++ b/src/main/resources/application-test.properties @@ -92,10 +92,10 @@ aws.s3.secretKey=LNIwFFB27/QedtZ+Q/viVUoX9F5x1DbuM8N0DkD8 aws.s3.regionName=ap-east-1 # RabbitMQ Exchange and Queue configurations -generate.exchange=generate-exchange -generate.queue=generate-queue-test -sr.queue=SR-queue-test -sr.result.queue=SuperResolution-test -generate.result.queue=GenerateImage-test -to.product.image.result.queue=ToProductImage-test -relight.result.queue=Relight-test \ No newline at end of file +rabbitmq.queues.generate=generate-queue-test +rabbitmq.queues.sr=SR-queue-test +rabbitmq.queues.srResult=SuperResolution-test +rabbitmq.queues.generateResult=GenerateImage-test +rabbitmq.queues.toProductImageResult=ToProductImage-test +rabbitmq.queues.relightResult=Relight-test +rabbitmq.exchange.generate=generate-exchange \ No newline at end of file