diff --git a/apis/src/main/java/org/apache/rocketmq/apis/consumer/ConsumeStatus.java b/apis/src/main/java/org/apache/rocketmq/apis/consumer/ConsumeResult.java similarity index 88% rename from apis/src/main/java/org/apache/rocketmq/apis/consumer/ConsumeStatus.java rename to apis/src/main/java/org/apache/rocketmq/apis/consumer/ConsumeResult.java index 0f0d7684d0..8dde6f6a27 100644 --- a/apis/src/main/java/org/apache/rocketmq/apis/consumer/ConsumeStatus.java +++ b/apis/src/main/java/org/apache/rocketmq/apis/consumer/ConsumeResult.java @@ -18,13 +18,14 @@ package org.apache.rocketmq.apis.consumer; -public enum ConsumeStatus { +public enum ConsumeResult { /** * Consume message success and need commit this message. */ SUCCESS, + /** - * Consume message failed and need reconsume later. + * Failed to consume the message, expecting potential delivery after configured backoff. */ FAILURE } diff --git a/apis/src/main/java/org/apache/rocketmq/apis/consumer/MessageListener.java b/apis/src/main/java/org/apache/rocketmq/apis/consumer/MessageListener.java index 3bf17cce12..5d249f1092 100644 --- a/apis/src/main/java/org/apache/rocketmq/apis/consumer/MessageListener.java +++ b/apis/src/main/java/org/apache/rocketmq/apis/consumer/MessageListener.java @@ -20,18 +20,31 @@ package org.apache.rocketmq.apis.consumer; import org.apache.rocketmq.apis.message.MessageView; /** - * MessageListener is used only for push consumer to process message consumption synchronously. + *

MessageListener is used only by PushConsumer to process messages + * synchronously. * - *

Refer to {@link PushConsumer}, push consumer will get message from server - * and dispatch the message to backend thread pool which control by parameter threadCount to consumer message concurrently. + *

PushConsumer will fetch messages from brokers and dispatch them to an + * embedded thread pool in form of Runnable tasks to achieve + * desirable processing concurrency. + * + *

Refer to {@link PushConsumer} for more further specs. */ public interface MessageListener { - /** - * The callback interface for consume message. Your should process the messageView and return consumeStatus. - * Push consumer will commit the message to server when return SUCCESS or reconsume later when return FAILED. - * When consume method throw unexpected exception, this consumeStatus will be treated as FAILED. - * @param messageView is message which need consume. - * @return ConsumeStatus which defined in {@link ConsumeStatus} - */ - ConsumeStatus consume(MessageView messageView); + + /** + * Callback interface to handle incoming messages. + * + * Application developers are expected to implement this interface to fulfill + * business requirements through processing message and return + * ConsumeResult accordingly. + * + * Push consumer will, on behalf of its group, acknowledge the message to + * broker on SUCCESS; In case of FAILURE returned or unexpected exceptions + * were raised, it will negatively acknowledge message, which + * would potentially get re-delivered after configured back off period. + * + * @param messageView is message which need consume. + * @return ConsumeResult which defined in {@link ConsumeResult} + */ + ConsumeResult consume(MessageView message); }