TASK:aida;

This commit is contained in:
shahaibo
2024-09-27 16:43:02 +08:00
parent 41ffe335fc
commit deda511e32
8 changed files with 104 additions and 108 deletions

View File

@@ -14,6 +14,7 @@ import org.apache.tomcat.jni.Time;
import org.springframework.amqp.core.Message; import org.springframework.amqp.core.Message;
import org.springframework.amqp.rabbit.annotation.RabbitHandler; import org.springframework.amqp.rabbit.annotation.RabbitHandler;
import org.springframework.amqp.rabbit.annotation.RabbitListener; import org.springframework.amqp.rabbit.annotation.RabbitListener;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value; import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Component; import org.springframework.stereotype.Component;
@@ -30,6 +31,9 @@ public class GenerateConsumer {
@Resource @Resource
private GenerateService generateService; private GenerateService generateService;
@Autowired
private RabbitMQProperties rabbitMQProperties;
@Resource @Resource
private RedisUtil redisUtil; private RedisUtil redisUtil;
@@ -243,73 +247,73 @@ public class GenerateConsumer {
log.info("============ProcessRelightResult End listening=========="); log.info("============ProcessRelightResult End listening==========");
} }
@RabbitListener(queues = MQConfig.GENERATE_QUEUE) @RabbitListener(queues = "#{rabbitMQProperties.queues.generate}")
@RabbitHandler @RabbitHandler
public void generateConsumer1(Message msg, Channel channel) { public void generateConsumer1(Message msg, Channel channel) {
generate(msg, channel, "consumer 1"); generate(msg, channel, "consumer 1");
} }
@RabbitListener(queues = MQConfig.GENERATE_QUEUE) @RabbitListener(queues = "#{rabbitMQProperties.queues.generate}")
@RabbitHandler @RabbitHandler
public void generateConsumer2(Message msg, Channel channel) { public void generateConsumer2(Message msg, Channel channel) {
generate(msg, channel, "consumer 2"); generate(msg, channel, "consumer 2");
} }
@RabbitListener(queues = MQConfig.GENERATE_QUEUE) @RabbitListener(queues = "#{rabbitMQProperties.queues.generate}")
@RabbitHandler @RabbitHandler
public void generateConsumer3(Message msg, Channel channel) { public void generateConsumer3(Message msg, Channel channel) {
generate(msg, channel, "consumer 3"); generate(msg, channel, "consumer 3");
} }
@RabbitListener(queues = MQConfig.GENERATE_QUEUE) @RabbitListener(queues = "#{rabbitMQProperties.queues.generate}")
@RabbitHandler @RabbitHandler
public void generateConsumer4(Message msg, Channel channel) { public void generateConsumer4(Message msg, Channel channel) {
generate(msg, channel, "consumer 4"); generate(msg, channel, "consumer 4");
} }
@RabbitListener(queues = MQConfig.GENERATE_QUEUE) @RabbitListener(queues = "#{rabbitMQProperties.queues.generate}")
@RabbitHandler @RabbitHandler
public void generateConsumer5(Message msg, Channel channel) { public void generateConsumer5(Message msg, Channel channel) {
generate(msg, channel, "consumer 5"); generate(msg, channel, "consumer 5");
} }
@RabbitListener(queues = MQConfig.GENERATE_QUEUE) @RabbitListener(queues = "#{rabbitMQProperties.queues.generate}")
@RabbitHandler @RabbitHandler
public void generateConsumer6(Message msg, Channel channel) { public void generateConsumer6(Message msg, Channel channel) {
generate(msg, channel, "consumer 6"); generate(msg, channel, "consumer 6");
} }
@RabbitListener(queues = MQConfig.GENERATE_QUEUE) @RabbitListener(queues = "#{rabbitMQProperties.queues.generate}")
@RabbitHandler @RabbitHandler
public void generateConsumer7(Message msg, Channel channel) { public void generateConsumer7(Message msg, Channel channel) {
generate(msg, channel, "consumer 7"); generate(msg, channel, "consumer 7");
} }
@RabbitListener(queues = MQConfig.GENERATE_QUEUE) @RabbitListener(queues = "#{rabbitMQProperties.queues.generate}")
@RabbitHandler @RabbitHandler
public void generateConsumer8(Message msg, Channel channel) { public void generateConsumer8(Message msg, Channel channel) {
generate(msg, channel, "consumer 8"); generate(msg, channel, "consumer 8");
} }
@RabbitListener(queues = MQConfig.GENERATE_QUEUE) @RabbitListener(queues = "#{rabbitMQProperties.queues.generate}")
@RabbitHandler @RabbitHandler
public void generateConsumer9(Message msg, Channel channel) { public void generateConsumer9(Message msg, Channel channel) {
generate(msg, channel, "consumer 9"); generate(msg, channel, "consumer 9");
} }
@RabbitListener(queues = MQConfig.GENERATE_RESULT_QUEUE) @RabbitListener(queues = "#{rabbitMQProperties.queues.generateResult}")
@RabbitHandler @RabbitHandler
public void getGenerateResult(Message msg, Channel channel) { public void getGenerateResult(Message msg, Channel channel) {
processGenerateResult(msg, channel); processGenerateResult(msg, channel);
} }
@RabbitListener(queues = MQConfig.TO_PRODUCT_IMAGE_RESULT_QUEUE) @RabbitListener(queues = "#{rabbitMQProperties.queues.toProductImageResult}")
@RabbitHandler @RabbitHandler
public void getToProductImageResult(Message msg, Channel channel) { public void getToProductImageResult(Message msg, Channel channel) {
processToProductImageResult(msg, channel); processToProductImageResult(msg, channel);
} }
@RabbitListener(queues = MQConfig.RELIGHT_RESULT_QUEUE) @RabbitListener(queues = "#{rabbitMQProperties.queues.relightResult}")
@RabbitHandler @RabbitHandler
public void getRelightResult(Message msg, Channel channel) { public void getRelightResult(Message msg, Channel channel) {
processRelightResult(msg, channel); processRelightResult(msg, channel);

View File

@@ -1,89 +1,43 @@
package com.ai.da.common.RabbitMQ; package com.ai.da.common.RabbitMQ;
import org.springframework.amqp.core.Queue; 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.Bean;
import org.springframework.context.annotation.Configuration; import org.springframework.context.annotation.Configuration;
import javax.annotation.PostConstruct;
@Configuration @Configuration
public class MQConfig { public class MQConfig {
// 定义为非静态变量 @Autowired
@Value("${generate.exchange}") private RabbitMQProperties rabbitMQProperties;
private String generateExchange;
@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 @Bean
public Queue generateQueue() { public Queue generateQueue() {
return new Queue(GENERATE_QUEUE); return new Queue(rabbitMQProperties.getQueues().getGenerate());
} }
@Bean @Bean
public Queue SRQueue() { public Queue SRQueue() {
return new Queue(SR_QUEUE); return new Queue(rabbitMQProperties.getQueues().getSr());
} }
@Bean @Bean
public Queue SRResultQueue() { public Queue SRResultQueue() {
return new Queue(SR_RESULT_QUEUE); return new Queue(rabbitMQProperties.getQueues().getSrResult());
} }
/** @Bean
* 将队列绑定到交换机上【队列订阅交换机】 public Queue generateResultQueue() {
*/ return new Queue(rabbitMQProperties.getQueues().getGenerateResult());
// @Bean }
// Binding bindingExchangeRasa() {
// return BindingBuilder.bind(queueRasa()).to(fanoutRasaExchange());
// }
@Bean
public Queue toProductImageResultQueue() {
return new Queue(rabbitMQProperties.getQueues().getToProductImageResult());
}
@Bean
public Queue relightResultQueue() {
return new Queue(rabbitMQProperties.getQueues().getRelightResult());
}
} }

View File

@@ -2,6 +2,7 @@ package com.ai.da.common.RabbitMQ;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.springframework.amqp.core.AmqpTemplate; import org.springframework.amqp.core.AmqpTemplate;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component; import org.springframework.stereotype.Component;
import javax.annotation.Resource; import javax.annotation.Resource;
@@ -10,19 +11,19 @@ import javax.annotation.Resource;
@Component @Component
public class MQPublisher { public class MQPublisher {
// private final String url = "http://localhost:15672/api/queues/%2f/generate-queue"; @Autowired
private RabbitMQProperties rabbitMQProperties;
@Resource @Autowired
private AmqpTemplate amqpTemplate; private AmqpTemplate amqpTemplate;
public void sendGenerateMessage(String mm) { public void sendGenerateMessage(String mm) {
log.info("send message:" + mm); log.info("send message: " + mm);
amqpTemplate.convertAndSend(MQConfig.GENERATE_QUEUE, mm); amqpTemplate.convertAndSend(rabbitMQProperties.getQueues().getGenerate(), mm);
} }
public void sendSRMessage(String mm) { public void sendSRMessage(String mm) {
log.info("send message:" + mm); log.info("send message: " + mm);
amqpTemplate.convertAndSend(MQConfig.SR_QUEUE, mm); amqpTemplate.convertAndSend(rabbitMQProperties.getQueues().getSr(), mm);
} }
} }

View File

@@ -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;
}
}

View File

@@ -15,6 +15,7 @@ import lombok.extern.slf4j.Slf4j;
import org.springframework.amqp.core.Message; import org.springframework.amqp.core.Message;
import org.springframework.amqp.rabbit.annotation.RabbitHandler; import org.springframework.amqp.rabbit.annotation.RabbitHandler;
import org.springframework.amqp.rabbit.annotation.RabbitListener; import org.springframework.amqp.rabbit.annotation.RabbitListener;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value; import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Component; import org.springframework.stereotype.Component;
@@ -27,6 +28,9 @@ import java.util.HashMap;
@Component @Component
public class SRConsumer { public class SRConsumer {
@Autowired
private RabbitMQProperties rabbitMQProperties;
@Resource @Resource
private RedisUtil redisUtil; private RedisUtil redisUtil;
@@ -218,14 +222,13 @@ public class SRConsumer {
taskListService.updateTaskStatusOrOutputRedis(uniqueId, "fail", null); taskListService.updateTaskStatusOrOutputRedis(uniqueId, "fail", null);
} }
@RabbitListener(queues = MQConfig.SR_QUEUE) @RabbitListener(queues = "#{rabbitMQProperties.queues.sr}")
@RabbitHandler @RabbitHandler
public void SRConsumer1(Message msg, Channel channel) { public void SRConsumer1(Message msg, Channel channel) {
superResolution(msg, channel, "consumer 1"); superResolution(msg, channel, "consumer 1");
} }
@RabbitListener(queues = "#{rabbitMQProperties.queues.srResult}")
@RabbitListener(queues = MQConfig.SR_RESULT_QUEUE)
@RabbitHandler @RabbitHandler
public void SRResultConsumer1(Message msg, Channel channel) { public void SRResultConsumer1(Message msg, Channel channel) {
getSRResult(msg, channel, "consumer 1"); getSRResult(msg, channel, "consumer 1");

View File

@@ -95,10 +95,10 @@ aws.s3.secretKey=LNIwFFB27/QedtZ+Q/viVUoX9F5x1DbuM8N0DkD8
aws.s3.regionName=ap-east-1 aws.s3.regionName=ap-east-1
# RabbitMQ Exchange and Queue configurations # RabbitMQ Exchange and Queue configurations
generate.exchange=generate-exchange rabbitmq.queues.generate=generate-queue-dev
generate.queue=generate-queue-dev rabbitmq.queues.sr=SR-queue-dev
sr.queue=SR-queue-dev rabbitmq.queues.srResult=SuperResolution-dev
sr.result.queue=SuperResolution-dev rabbitmq.queues.generateResult=GenerateImage-dev
generate.result.queue=GenerateImage-dev rabbitmq.queues.toProductImageResult=ToProductImage-dev
to.product.image.result.queue=ToProductImage-dev rabbitmq.queues.relightResult=Relight-dev
relight.result.queue=Relight-dev rabbitmq.exchange.generate=generate-exchange

View File

@@ -96,10 +96,10 @@ aws.s3.secretKey=LNIwFFB27/QedtZ+Q/viVUoX9F5x1DbuM8N0DkD8
aws.s3.regionName=ap-east-1 aws.s3.regionName=ap-east-1
# RabbitMQ Exchange and Queue configurations # RabbitMQ Exchange and Queue configurations
generate.exchange=generate-exchange rabbitmq.queues.generate=generate-queue-prod
generate.queue=generate-queue-prod rabbitmq.queues.sr=SR-queue-prod
sr.queue=SR-queue-prod rabbitmq.queues.srResult=SuperResolution-prod
sr.result.queue=SuperResolution-prod rabbitmq.queues.generateResult=GenerateImage-prod
generate.result.queue=GenerateImage-prod rabbitmq.queues.toProductImageResult=ToProductImage-prod
to.product.image.result.queue=ToProductImage-prod rabbitmq.queues.relightResult=Relight-prod
relight.result.queue=Relight-prod rabbitmq.exchange.generate=generate-exchange

View File

@@ -87,11 +87,15 @@ redis.key.taskList=TaskList
redis.key.credits.pre-deduction=Credits:PreDeduction redis.key.credits.pre-deduction=Credits:PreDeduction
redis.key.generateResult=Generate:Result redis.key.generateResult=Generate:Result
aws.s3.accessKeyId=AKIAVD3OJIMF6UJFLSHZ
aws.s3.secretKey=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
aws.s3.regionName=ap-east-1
# RabbitMQ Exchange and Queue configurations # RabbitMQ Exchange and Queue configurations
generate.exchange=generate-exchange rabbitmq.queues.generate=generate-queue-test
generate.queue=generate-queue-test rabbitmq.queues.sr=SR-queue-test
sr.queue=SR-queue-test rabbitmq.queues.srResult=SuperResolution-test
sr.result.queue=SuperResolution-test rabbitmq.queues.generateResult=GenerateImage-test
generate.result.queue=GenerateImage-test rabbitmq.queues.toProductImageResult=ToProductImage-test
to.product.image.result.queue=ToProductImage-test rabbitmq.queues.relightResult=Relight-test
relight.result.queue=Relight-test rabbitmq.exchange.generate=generate-exchange