From commits-return-17926-archive-asf-public=cust-asf.ponee.io@pulsar.apache.org Thu Nov 22 02:35:08 2018 Return-Path: X-Original-To: archive-asf-public@cust-asf.ponee.io Delivered-To: archive-asf-public@cust-asf.ponee.io Received: from mail.apache.org (hermes.apache.org [140.211.11.3]) by mx-eu-01.ponee.io (Postfix) with SMTP id AAF48180668 for ; Thu, 22 Nov 2018 02:35:07 +0100 (CET) Received: (qmail 17655 invoked by uid 500); 22 Nov 2018 01:35:06 -0000 Mailing-List: contact commits-help@pulsar.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: dev@pulsar.apache.org Delivered-To: mailing list commits@pulsar.apache.org Received: (qmail 17642 invoked by uid 99); 22 Nov 2018 01:35:06 -0000 Received: from ec2-52-202-80-70.compute-1.amazonaws.com (HELO gitbox.apache.org) (52.202.80.70) by apache.org (qpsmtpd/0.29) with ESMTP; Thu, 22 Nov 2018 01:35:06 +0000 Received: by gitbox.apache.org (ASF Mail Server at gitbox.apache.org, from userid 33) id 232EA825AA; Thu, 22 Nov 2018 01:35:06 +0000 (UTC) Date: Thu, 22 Nov 2018 01:35:06 +0000 To: "commits@pulsar.apache.org" Subject: [pulsar] branch master updated: Add default ackTimeout(30s) for dead letter policy (#3014) MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit Message-ID: <154285050595.9732.9037762006834128937@gitbox.apache.org> From: sijie@apache.org X-Git-Host: gitbox.apache.org X-Git-Repo: pulsar X-Git-Refname: refs/heads/master X-Git-Reftype: branch X-Git-Oldrev: ac978462413a32a9b533c250a424cb52be110059 X-Git-Newrev: 0a7e133d3ca7cbb15e88c1dd906738c8ba586558 X-Git-Rev: 0a7e133d3ca7cbb15e88c1dd906738c8ba586558 X-Git-NotificationType: ref_changed_plus_diff X-Git-Multimail-Version: 1.5.dev Auto-Submitted: auto-generated This is an automated email from the ASF dual-hosted git repository. sijie pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/pulsar.git The following commit(s) were added to refs/heads/master by this push: new 0a7e133 Add default ackTimeout(30s) for dead letter policy (#3014) 0a7e133 is described below commit 0a7e133d3ca7cbb15e88c1dd906738c8ba586558 Author: penghui AuthorDate: Thu Nov 22 09:35:01 2018 +0800 Add default ackTimeout(30s) for dead letter policy (#3014) Fix issue #2987 ### Motivation In version 2.2.0, support DeadLetterTopic feature. This feature based on message redelivery. So ack timeout is necessary. ### Modifications Set ackTimeout(30s) when enable the dead letter policy but not set the ackTimeout; --- .../main/java/org/apache/pulsar/client/api/ConsumerBuilder.java | 2 ++ .../java/org/apache/pulsar/client/impl/ConsumerBuilderImpl.java | 9 ++++++++- 2 files changed, 10 insertions(+), 1 deletion(-) diff --git a/pulsar-client/src/main/java/org/apache/pulsar/client/api/ConsumerBuilder.java b/pulsar-client/src/main/java/org/apache/pulsar/client/api/ConsumerBuilder.java index 7f5e448..62c3229 100644 --- a/pulsar-client/src/main/java/org/apache/pulsar/client/api/ConsumerBuilder.java +++ b/pulsar-client/src/main/java/org/apache/pulsar/client/api/ConsumerBuilder.java @@ -365,6 +365,8 @@ public interface ConsumerBuilder extends Cloneable { * .deadLetterPolicy(DeadLetterPolicy.builder().maxRedeliverCount(10).deadLetterTopic("your-topic-name").build()) * .subscribe(); * + * When a dead letter policy is specified, and no ackTimeoutMillis is specified, + * then the ack timeout will be set to 30000 millisecond */ ConsumerBuilder deadLetterPolicy(DeadLetterPolicy deadLetterPolicy); } diff --git a/pulsar-client/src/main/java/org/apache/pulsar/client/impl/ConsumerBuilderImpl.java b/pulsar-client/src/main/java/org/apache/pulsar/client/impl/ConsumerBuilderImpl.java index 7853de5..b83804b 100644 --- a/pulsar-client/src/main/java/org/apache/pulsar/client/impl/ConsumerBuilderImpl.java +++ b/pulsar-client/src/main/java/org/apache/pulsar/client/impl/ConsumerBuilderImpl.java @@ -60,6 +60,8 @@ public class ConsumerBuilderImpl implements ConsumerBuilder { private List> interceptorList; private static long MIN_ACK_TIMEOUT_MILLIS = 1000; + private static long DEFAULT_ACK_TIMEOUT_MILLIS_FOR_DEAD_LETTER = 30000L; + public ConsumerBuilderImpl(PulsarClientImpl client, Schema schema) { this(client, new ConsumerConfigurationData(), schema); @@ -266,7 +268,12 @@ public class ConsumerBuilderImpl implements ConsumerBuilder { @Override public ConsumerBuilder deadLetterPolicy(DeadLetterPolicy deadLetterPolicy) { - conf.setDeadLetterPolicy(deadLetterPolicy); + if (deadLetterPolicy != null) { + if (conf.getAckTimeoutMillis() == 0) { + conf.setAckTimeoutMillis(DEFAULT_ACK_TIMEOUT_MILLIS_FOR_DEAD_LETTER); + } + conf.setDeadLetterPolicy(deadLetterPolicy); + } return this; }