当前位置: 首页 > 知识库问答 >
问题:

topicJmsListenerContainerFactory是否支持异步处理-Azure Spring JMS?

白晋鹏
2023-03-14

我试图从azure服务总线主题异步读取消息。我根据MS文档创建了JMS监听器

  @JmsListener(destination = TOPIC_NAME, containerFactory = "topicJmsListenerContainerFactory",
            subscription = SUBSCRIPTION_NAME)
    public void receiveMessage(User user) {
        logger.info("Received message: {}", user.getName());
    }

我需要确保topicJmsListenerContainerFactory容器工厂是否支持异步处理?

我尝试像下面这样实现DefaultJmsListenerContainerFactory,但是使用它我无法从服务总线顶部获取任何消息。它引发了一个异常,无法找到消息传递实体。我可以使用topicJmsListenerContainerFactory容器工厂获取消息

@Bean
@ConditionalOnMissingBean(name = "jmsListenerContainerFactory")
public DefaultJmsListenerContainerFactory jmsListenerContainerFactory(DefaultJmsListenerContainerFactoryConfigurer Configure, ConnectionFactory connectionFactory) {
    DefaultJmsListenerContainerFactory factory = new DefaultJmsListenerContainerFactory();
    Configure.configure(factory, connectionFactory);
    return factory;
}

https://docs.microsoft.com/en-us/java/api/com.azure.spring.autoConfigure.jms.servicebusJMSAutoConfiguration.topicJMSListenerContainerFactory?view=azure-java-preview

https://docs.spring.io/spring-framework/docs/current/javadoc-api/org/springframework/jms/annotation/jmslistener.html

有谁能对此提出建议吗?

共有1个答案

蓝星辰
2023-03-14

是的。有。快速浏览https://github.com/azure/azure-sdk-for-java/blob/e81850c3fceBe0bbfe65ed3e8a1c7c0c607798cf/sdk/spring/azure-spring-boot/src/main/java/com/azure/spring/autoconfiguration/jms/servicebusjmsautoconfiguration.java#l71

提供TopicJMSListenerContainerFactory也是DefaultJMSListenerContainerFactory类的一个实例,正如我们所知DefaultJMSListenerContainerFactory提供了Spring JMS的所有优点,所以它应该可以正常工作。

 类似资料:
  • 问题内容: 我正在将JSHint用于JavaScript项目(带有Visual Studio Code)。在此项目中,我使用async / await,JSHint将其突出显示为错误。 我尝试设置jshint,但似乎“ esversion”的最大版本为6。 jshint支持异步/等待吗?如果可以,如何打开它?如果没有,是否有任何解决方法? 问题答案: 更新(2019年2月) :从2.10.1版本开

  • Dart 的库充满了返回 Future 或 Stream 对象的函数。这些函数是“异步的”:它们在设置一个可能比较耗时的操作(比如 I/O)后返回,而不去等待操作完成。 关键字 async 和 await 支持异步编程,可以使你用看起来像同步的方式编写异步代码。 处理 Futures 当你需要一个已完成的 Future 的结果时,你有两个选择: 使用 async 和 await。 使用 Futur

  • 问题内容: 我知道,现在大多数处理器都有两个或多个内核,因此多核编程非常流行。有在Java中利用此功能的功能吗?我知道Java有一个Thread类,但是我也知道这是在多核流行之前的很长时间了。如果我可以使用Java中的多个内核,我将使用什么类/技术? 问题答案: Java是否支持多核处理器/并行处理? 是。它还是其他编程语言的平台,在该平台上,实现增加了“真正的多线程”或“真正的线程”卖点。在较新

  • 在没有特定主题/答案的情况下搜索后询问此问题。 我将实施paypal express结帐,以处理使用信用卡付款的客户。他们要求支持2级信用卡处理以上传客户id。在paypal文档中或此处找不到正确答案,我只在paypal文档中找到(提交购买卡2级和3级交易),我认为这不适用于信用卡。( https://developer.paypal.com/docs/classic/payflow/integr

  • 在Servlet 3.0中,引入了异步处理的概念。所以所有的书都说这消除了每个请求一个线程的要求。我已经测试过了,是的,它确实有效。现在,我有一个简单的servlet,用户在其中以同步模式启动HTTP请求。线程只需Hibernate1秒,然后回复客户端。当我对这种模式进行负载测试时,服务器每秒只能处理4个请求。现在,我将同步模式更改为异步模式,并根据请求创建一个新线程,将原始http线程释放回池。

  • 我需要用Storm处理成批的元组。我的最后一个bolt必须等到拓扑接收到整个批处理之后才能进行一些处理。为了避免混淆--对我来说,批处理是一组N条消息,它们是实时的,这个术语不需要与批处理(Hadoop)联系在一起。即使2条消息也可以是一批。 阅读Storm的文档是否可以说Storm不支持这种批处理(实时的批处理=N条消息)? 所以我的问题是给你们,我亲爱的Storm大师们,这个拓扑是不是设计得很