3

複数のインスタンスを作成し、独立したキューのSimpleMessageListenerContainerカスタムを定義しようとしています。このセットアップの理由は、スレッド プール構成がすべてのメッセージ リスナー キューで共有される共有を作成したくないからです。TaskExecutorMessageListenerSimpleMessageListenerContainer

提案をお願いできますか?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;
}
4

1 に答える 1