首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >使用JMS线程池协程重复的线程

使用JMS线程池协程重复的线程
EN

Stack Overflow用户
提问于 2020-11-11 22:15:45
回答 1查看 100关注 0票数 0

我有一些逻辑,它使用JMS队列线程池。它通常看起来是什么样子:

代码语言:javascript
运行
复制
[request thread] -> jms -> JMS listener [thread pool] -> reactive web client

现在我收到了重复的消息(例如-错误)

代码语言:javascript
运行
复制
ERROR [DefaultMessageListenerContainer-5 @coroutine#2]
ERROR [DefaultMessageListenerContainer-4 @coroutine#4]
ERROR [DefaultMessageListenerContainer-1 @coroutine#1]
ERROR [DefaultMessageListenerContainer-3 @coroutine#3]

这样的协程是由runBlocking发起的。

代码语言:javascript
运行
复制
@JmsListener(destination = ...)
fun someHandleFunction(...) = runBlocking {
   someWebClientService.createRequest(...)
}

// SomeWebClientService class
suspend fun createRequest(...) = try {
   val response = webClient
       .post()
       .uri { ... }
       ...
       .exchange()
       .awaitFirst()

   // Check response status here
} catch (e: Exception) { 
   // Some error handling here
}

是的,我知道在runBlockin协程的情况下可以behave in such way...但是为什么协程线程与新的线程相关联呢?

这样的重复有什么问题?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-11-12 15:40:13

问题与JMS配置相关。

由于某些原因,如果没有这个配置,单独的JMS线程只能处理一个任务

代码语言:javascript
运行
复制
spring:
     artemis.embedded:
           persistent: true
           data-directory: ./target/some-queue-storage
           queues: ...
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/64788133

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档