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