[ 
https://issues.apache.org/jira/browse/ROCKETMQ-102?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15871520#comment-15871520
 ] 

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_r101718137
  
    --- Diff: 
client/src/main/java/org/apache/rocketmq/client/impl/consumer/ConsumeMessageConcurrentlyService.java
 ---
    @@ -93,8 +93,24 @@ public void run() {
         }
     
         public void shutdown() {
    +        shutdown(0);
    +    }
    +
    +    @Override
    +    public void shutdown(long awaitTerminateMillis) {
             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 --
    
    Did you follow our code code guidelines[1] ? Below `if` block is 
recommended.
    ```
    if {
    }
    ```
    http://rocketmq.incubator.apache.org/docs/code-guidelines/


> 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)

Reply via email to