[
https://issues.apache.org/jira/browse/ROCKETMQ-102?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15897180#comment-15897180
]
ASF GitHub Bot commented on ROCKETMQ-102:
-----------------------------------------
Github user zhouxinyu commented on a diff in the pull request:
https://github.com/apache/incubator-rocketmq/pull/64#discussion_r104399253
--- Diff:
client/src/main/java/org/apache/rocketmq/client/impl/consumer/ConsumeMessageOrderlyService.java
---
@@ -92,10 +92,22 @@ public void run() {
}
}
- public void shutdown() {
+ @Override
+ public void shutdown(long awaitTerminateMillis) {
this.stopped = true;
this.scheduledExecutorService.shutdown();
this.consumeExecutor.shutdown();
+ //await to consume
+ if (awaitTerminateMillis > 0) {
+ try {
+
this.consumeExecutor.awaitTermination(awaitTerminateMillis,TimeUnit.MILLISECONDS);
+ if (!this.consumeExecutor.isTerminated()) log.info("There
are messages still being consumed in thread pool, but not going to await them
anymore. Have awaited for {} ms",awaitTerminateMillis);
--- End diff --
Hi @Jaskey ,
I added a ThreadUtils, please refer to
[here](https://github.com/apache/incubator-rocketmq/commit/e3f4251c91a73f4e51732bcb1690554ac5fb3096).
> When shutdown(), the persisted offet is not the latest consumed message,
> which may cause repeated messages
> ----------------------------------------------------------------------------------------------------------
>
> Key: ROCKETMQ-102
> URL: https://issues.apache.org/jira/browse/ROCKETMQ-102
> Project: Apache RocketMQ
> Issue Type: Improvement
> Components: rocketmq-client
> Reporter: Jaskey Lam
> Assignee: Xiaorui Wang
>
> When shutdown push consumer, push consumer will shutdwon thread pool then
> persist offset.
> While shutdown thread pool is only stop submiting message to consume, which
> does not stop consuming message which exists in the the thread queue or is
> already being consumed.
> Which will cause repeated message very easily though user are shutdown
> gracefully according to the provided interface.
> A way to solve this problem is needed. Such as accpet a param that how long
> to wait for thread pool to terminated.
--
This message was sent by Atlassian JIRA
(v6.3.15#6346)