【发布时间】:2021-02-25 08:53:33
【问题描述】:
我有一个围绕 SAP Enterprise 消息传递(从 S4HC 使用 BusinessEvents)的用例,以使其成为多租户。为此,该方法是为每个租户创建一个队列,并且特定队列将订阅该租户的多个业务事件。 目前,我已经使用以下代码实现了使其工作/仅侦听 1 个队列的功能。请注意,所有事件都是异步或非阻塞调用,并实现了侦听器类。
@Bean
public Connection getSession(MessagingServiceJmsConnectionFactory connectionFactory) throws JMSException, InterruptedException {
Connection connection = connectionFactory.createConnection();
//connection.start();
Session session = connection.createSession(false, Session.AUTO_ACKNOWLEDGE);
Queue queue = session.createQueue(QUEUE_PREFIX + QUEUE);
final MessageConsumer messageConsumer = session.createConsumer(queue);
messageConsumer.setMessageListener(new DefaultMessageListener());
connection.start();
Thread.sleep(5000);
return connection;
}
方法是通过服务管理器在订阅回调上创建队列,并使应用程序在不停止/重新启动应用程序的情况下侦听新队列(将其添加到现有队列中)。 如何使用 SpringBoot 获取连接工厂会话并使用侦听器添加新队列以使其动态化? 你能在这方面提供帮助吗?
【问题讨论】:
标签: sap-cloud-platform sap-cloud-sdk