gpt4 book ai didi

spring-cloud-aws - Spring Cloud AWS 多个 SimpleMessageListenerContainer 配置设置

转载 作者:行者123 更新时间:2023-12-05 07:48:01 27 4
gpt4 key购买 nike

我正在尝试实例化多个 SimpleMessageListenerContainer 并为独立的 MessageListener 队列定义自定义 TaskExecutor,此设置的原因是我不想要创建一个共享的 SimpleMessageListenerContainer,其中线程池配置在所有消息监听器队列之间共享。

你能提供一个建议吗?我尝试遵循一些 spring-messaging-aws 测试用例方法,但似乎没有用?

@Bean
public SimpleMessageListenerContainerFactory simpleMessageListenerContainerFactory() {
SimpleMessageListenerContainerFactory msgListenerContainerFactory = new SimpleMessageListenerContainerFactory();
msgListenerContainerFactory.setAmazonSqs(amazonSQSClient());
return msgListenerContainerFactory;
}

@Bean
public SimpleMessageListenerContainer uplinkMessageListenerContainer() throws Exception {
SimpleMessageListenerContainer msgListenerContainer = simpleMessageListenerContainerFactory().createSimpleMessageListenerContainer();
msgListenerContainer.setAmazonSqs(amazonSQSClient());
QueueMessageHandler messageHandler = new QueueMessageHandler();
msgListenerContainer.setMessageHandler(messageHandler);
StaticApplicationContext applicationContext = new StaticApplicationContext();
applicationContext.registerSingleton("uplinkMessageListener", UplinkMessageListener.class);

messageHandler.setApplicationContext(applicationContext);
msgListenerContainer.setBeanName("testContainerName");
messageHandler.afterPropertiesSet();
msgListenerContainer.setMaxNumberOfMessages(maxNumberOfmessages);
msgListenerContainer.setWaitTimeOut(waitTimeout);
msgListenerContainer.setBackOffTime(backOfTime);
msgListenerContainer.setAutoStartup(sqsAutoStartup);
msgListenerContainer.setVisibilityTimeout(visibilityTimeout);
msgListenerContainer.setTaskExecutor(createDefaultTaskExecutor("MPSQSUplinkMessageListener", 2, 10));
msgListenerContainer.afterPropertiesSet();
msgListenerContainer.start();
return msgListenerContainer;
}

最佳答案

我找不到比使用 Scheduler 创建服务更好的解决方案了。

@Component
public class AmazonService {

@Scheduled("0 */5 * * * *")
public void checkSqs() {
// Check sqs
}
}

SQS 将通过惰性机制或通过服务中的构造函数进行实例化。

关于spring-cloud-aws - Spring Cloud AWS 多个 SimpleMessageListenerContainer 配置设置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39006385/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com