Skip to content

Commit 386269e

Browse files
committed
Better tuning of ack deadline in renewer
1 parent 501ba7d commit 386269e

File tree

2 files changed

+7
-6
lines changed

2 files changed

+7
-6
lines changed

gcloud-java-pubsub/src/main/java/com/google/cloud/pubsub/AckDeadlineRenewer.java

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -41,7 +41,8 @@
4141
*/
4242
class AckDeadlineRenewer implements AutoCloseable {
4343

44-
private static final int MIN_DEADLINE_MILLIS = 9_000;
44+
private static final int MIN_DEADLINE_MILLIS = 10_000;
45+
private static final int DEADLINE_SLACK_MILLIS = 1_000;
4546
private static final int RENEW_THRESHOLD_MILLIS = 3_000;
4647
private static final int NEXT_RENEWAL_THRESHOLD_MILLIS = 1_000;
4748

@@ -213,8 +214,8 @@ private void renewAckDeadlines() {
213214
}
214215
for (Map.Entry<String, List<String>> entry : Multimaps.asMap(messagesToRenewNext).entrySet()) {
215216
// We send all ack deadline renewals for a subscription
216-
pubsub.modifyAckDeadlineAsync(entry.getKey(), MIN_DEADLINE_MILLIS,
217-
TimeUnit.MILLISECONDS, entry.getValue());
217+
pubsub.modifyAckDeadlineAsync(entry.getKey(), MIN_DEADLINE_MILLIS, TimeUnit.MILLISECONDS,
218+
entry.getValue());
218219
}
219220
unsetAndScheduleNextRenewal();
220221
}
@@ -253,7 +254,7 @@ private Message nextMessageToRenew(long threshold) {
253254
*/
254255
void add(String subscription, String ackId) {
255256
synchronized (lock) {
256-
long deadline = clock.millis() + MIN_DEADLINE_MILLIS;
257+
long deadline = clock.millis() + MIN_DEADLINE_MILLIS - DEADLINE_SLACK_MILLIS;
257258
Message message = new Message(new MessageId(subscription, ackId), deadline);
258259
messageQueue.add(message);
259260
messageDeadlines.put(message.messageId(), deadline);
@@ -272,7 +273,7 @@ void add(String subscription, String ackId) {
272273
*/
273274
void add(String subscription, Iterable<String> ackIds) {
274275
synchronized (lock) {
275-
long deadline = clock.millis() + MIN_DEADLINE_MILLIS;
276+
long deadline = clock.millis() + MIN_DEADLINE_MILLIS - DEADLINE_SLACK_MILLIS;
276277
for (String ackId : ackIds) {
277278
Message message = new Message(new MessageId(subscription, ackId), deadline);
278279
messageQueue.add(message);

gcloud-java-pubsub/src/test/java/com/google/cloud/pubsub/AckDeadlineRenewerTest.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,7 @@
3636

3737
public class AckDeadlineRenewerTest {
3838

39-
private static final int MIN_DEADLINE_MILLIS = 9_000;
39+
private static final int MIN_DEADLINE_MILLIS = 10_000;
4040

4141
private static final String SUBSCRIPTION1 = "subscription1";
4242
private static final String SUBSCRIPTION2 = "subscription2";

0 commit comments

Comments
 (0)