apache / apache/rocketmq-spring

The 'consumeThreadMax' in annotation @RocketMQMessageListener 到底有什么用

Open
#742 2 comments 0 reactions 0 assignees View on GitHub
Dominant language
Java
Stars
2.3k
Forks
943
PR merge metrics
No merged PRs in 30d

Description

rocketmq RocketMQMessageListener 注解中有 consumeThreadMax, consumeThreadNumber 参数,在我之前使用的 sdk 4.9.3 中,consumeThreadMax 被标记成过期,可以参看源码,可以看到 consumeThreadMax 属性是不会生效的。而最近在升级 sdk 到 5.1.0 时,发现过期标记被去除了,而且 consumeThreadMax 和 consumeThreadMin 会被正确设置。而在 ConsumeMessageConcurrentlyService 类中,consumeRequestQueue 的定义却又是使用无界队列,这我就很困惑了,这个参数到底有没有用? ConsumeMessageConcurrentlyService 类里有如下声明:

```java
this.consumeExecutor = new ThreadPoolExecutor(this.defaultMQPushConsumer.getConsumeThreadMin(), this.defaultMQPushConsumer.getConsumeThreadMax(), 60000L, TimeUnit.MILLISECONDS, this.consumeRequestQueue, new ThreadFactoryImpl("ConsumeMessageThread_"));
```

Contributor guide

No contributing guide indexed for this repository

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.