[ https://issues.apache.org/jira/browse/ROCKETMQ-102?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15887844#comment-15887844 ]
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_r103434431 --- 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 -- add a new java file `ThreadUtils`? > 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)