This is an automated email from the ASF dual-hosted git repository.
lamberliu pushed a commit to branch TUBEMQ-430
in repository https://gitbox.apache.org/repos/asf/incubator-tubemq.git
The following commit(s) were added to refs/heads/TUBEMQ-430 by this push:
new c70b6ea [TUBEMQ-419] SetMaxPartCheckPeriodMs() negative number,
getMessage() still lock the thread[addendum] (#332)
c70b6ea is described below
commit c70b6eaba2beeaac8694b5f52ba5ffb3baf9e06f
Author: gosonzhang <[email protected]>
AuthorDate: Tue Dec 1 10:28:28 2020 +0800
[TUBEMQ-419] SetMaxPartCheckPeriodMs() negative number, getMessage() still
lock the thread[addendum] (#332)
Co-authored-by: gosonzhang <[email protected]>
---
.../java/org/apache/tubemq/client/config/ConsumerConfig.java | 12 ++++++++++++
.../apache/tubemq/client/consumer/PullMessageConsumer.java | 7 +++++++
2 files changed, 19 insertions(+)
diff --git
a/tubemq-client/src/main/java/org/apache/tubemq/client/config/ConsumerConfig.java
b/tubemq-client/src/main/java/org/apache/tubemq/client/config/ConsumerConfig.java
index d8b63fb..184da79 100644
---
a/tubemq-client/src/main/java/org/apache/tubemq/client/config/ConsumerConfig.java
+++
b/tubemq-client/src/main/java/org/apache/tubemq/client/config/ConsumerConfig.java
@@ -124,6 +124,18 @@ public class ConsumerConfig extends TubeClientConfig {
return pullConsumeReadyWaitPeriodMs;
}
+ // setPullConsumeReadyWaitPeriodMs() use note:
+ // The value range is [negative value, 0, positive value] and the value
directly determines
+ // the behavior of the PullMessageConsumer.GetMessage() function:
+ // 1. if it is set to a negative value, it means that the GetMessage()
calling thread will
+ // be blocked forever and will not return until the consumption
conditions are met;
+ // 2. if If it is set to 0, it means that the GetMessage() calling thread
will only block
+ // the ConsumerConfig.getPullConsumeReadyChkSliceMs() interval when the
consumption
+ // conditions are not met and then return;
+ // 3. if it is set to a positive number, it will not meet the current user
usage (including
+ // unused partitions or allocated partitions, but these partitions do
not meet the usage
+ // conditions), the GetMessage() calling thread will be blocked until
the total time of
+ // ConsumerConfig.getPullConsumeReadyWaitPeriodMs expires
public void setPullConsumeReadyWaitPeriodMs(long
pullConsumeReadyWaitPeriodMs) {
this.pullConsumeReadyWaitPeriodMs = pullConsumeReadyWaitPeriodMs;
}
diff --git
a/tubemq-client/src/main/java/org/apache/tubemq/client/consumer/PullMessageConsumer.java
b/tubemq-client/src/main/java/org/apache/tubemq/client/consumer/PullMessageConsumer.java
index af5d50f..d9c3baf 100644
---
a/tubemq-client/src/main/java/org/apache/tubemq/client/consumer/PullMessageConsumer.java
+++
b/tubemq-client/src/main/java/org/apache/tubemq/client/consumer/PullMessageConsumer.java
@@ -28,6 +28,13 @@ public interface PullMessageConsumer extends MessageConsumer
{
PullMessageConsumer subscribe(String topic,
TreeSet<String> filterConds) throws
TubeClientException;
+ // getMessage() use note:
+ // This getMessage have a blocking situation: when the current
+ // consumer consumption situation is not satisfied (including
+ // without partitions to consumption, or allocated partitions but
+ // the partitions do not meet the consumption situation),
+ // the call will sleep at intervals of
ConsumerConfig.getPullConsumeReadyChkSliceMs(),
+ // until the total time of ConsumerConfig.getPullConsumeReadyWaitPeriodMs
ConsumerResult getMessage() throws TubeClientException;
ConsumerResult confirmConsume(final String confirmContext,