apache / apache/rocketmq-spring
手动触发重新消费, 不走ConsumeMessageHook
- Dominant language
- Java
- Stars
- 2.3k
- Forks
- 943
- PR merge metrics
- No merged PRs in 30d
Description
手动触发重新消费消息
org\apache\rocketmq\client\impl\ClientRemotingProcessor.java
```
@Override
public RemotingCommand processRequest(ChannelHandlerContext ctx,
RemotingCommand request) throws RemotingCommandException {
switch (request.getCode()) {
case RequestCode.CHECK_TRANSACTION_STATE:
return this.checkTransactionState(ctx, request);
case RequestCode.NOTIFY_CONSUMER_IDS_CHANGED:
return this.notifyConsumerIdsChanged(ctx, request);
case RequestCode.RESET_CONSUMER_CLIENT_OFFSET:
return this.resetOffset(ctx, request);
case RequestCode.GET_CONSUMER_STATUS_FROM_CLIENT:
return this.getConsumeStatus(ctx, request);
case RequestCode.GET_CONSUMER_RUNNING_INFO:
return this.getConsumerRunningInfo(ctx, request);
case RequestCode.CONSUME_MESSAGE_DIRECTLY:
return this.consumeMessageDirectly(ctx, request);
case RequestCode.PUSH_REPLY_MESSAGE_TO_CLIENT:
return this.receiveReplyMessage(ctx, request);
default:
break;
}
return null;
}
```
此方法consumeMessageDirectly, 源码内没有处理ConsumeMessageHook
Contributor guide
No contributing guide indexed for this repository
Research direction
Start in org/apache/rocketmq/client/impl/ClientRemotingProcessor.java and trace the consumeMessageDirectly(ctx, request) entry point. Compare its handling with the normal consumer path, focusing on where ConsumeMessageHook is invoked. Done means manually triggered message re-consumption also passes through ConsumeMessageHook; verify the behavior with the repository's relevant tests.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- java
- Domain
- distributed-systems
- Issue type
- Bug
- Difficulty
- 3/5
- Estimated time
- 1-2 days
- Activity status
- Active
- Clarity
- Mostly clear
- Newbie friendliness
- 58/100