From a0fc98ff772c377b6c43698edd9767a4628803f3 Mon Sep 17 00:00:00 2001 From: Kamal Aboul-Hosn Date: Tue, 16 Jul 2019 12:20:51 -0400 Subject: [PATCH 1/2] Mark ordering keys APIs public --- .../java/com/google/cloud/pubsub/v1/Publisher.java | 10 ++++------ 1 file changed, 4 insertions(+), 6 deletions(-) diff --git a/google-cloud-clients/google-cloud-pubsub/src/main/java/com/google/cloud/pubsub/v1/Publisher.java b/google-cloud-clients/google-cloud-pubsub/src/main/java/com/google/cloud/pubsub/v1/Publisher.java index 8a5802420854..8ce8a370ff32 100644 --- a/google-cloud-clients/google-cloud-pubsub/src/main/java/com/google/cloud/pubsub/v1/Publisher.java +++ b/google-cloud-clients/google-cloud-pubsub/src/main/java/com/google/cloud/pubsub/v1/Publisher.java @@ -269,9 +269,8 @@ public ApiFuture publish(PubsubMessage message) { * * @param key The key for which to resume publishing. */ - // TODO: make this public when Ordering keys is live - @BetaApi - void resumePublish(String key) { + @BetaApi("Ordering is not yet fully supported and requires special project enablements.") + public void resumePublish(String key) { Preconditions.checkState(!shutdown.get(), "Cannot publish on a shut-down publisher."); sequentialExecutor.resumePublish(key); } @@ -692,9 +691,8 @@ public Builder setRetrySettings(RetrySettings retrySettings) { } /** Sets the message ordering option. */ - // TODO: make this public when Ordering keys is live - @BetaApi - Builder setEnableMessageOrdering(boolean enableMessageOrdering) { + @BetaApi("Ordering is not yet fully supported and requires special project enablements.") + public Builder setEnableMessageOrdering(boolean enableMessageOrdering) { this.enableMessageOrdering = enableMessageOrdering; return this; } From 173adc5918ea63e574f65a05251bd17726e0c87b Mon Sep 17 00:00:00 2001 From: Kamal Aboul-Hosn Date: Wed, 14 Aug 2019 12:22:54 -0400 Subject: [PATCH 2/2] Go back to calling publish on the exectuor, which is what we did before the updates to support ordering keys. Without it, we end up with a lot of publishes hanging for long periods of time. --- .../main/java/com/google/cloud/pubsub/v1/Publisher.java | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/google-cloud-clients/google-cloud-pubsub/src/main/java/com/google/cloud/pubsub/v1/Publisher.java b/google-cloud-clients/google-cloud-pubsub/src/main/java/com/google/cloud/pubsub/v1/Publisher.java index 815bb9cf5e0d..409c7321288e 100644 --- a/google-cloud-clients/google-cloud-pubsub/src/main/java/com/google/cloud/pubsub/v1/Publisher.java +++ b/google-cloud-clients/google-cloud-pubsub/src/main/java/com/google/cloud/pubsub/v1/Publisher.java @@ -256,7 +256,13 @@ public ApiFuture publish(PubsubMessage message) { if (!batchesToSend.isEmpty() && orderingKey.isEmpty()) { for (final OutstandingBatch batch : batchesToSend) { logger.log(Level.FINER, "Scheduling a batch for immediate sending."); - publishOutstandingBatch(batch); + executor.execute( + new Runnable() { + @Override + public void run() { + publishOutstandingBatch(batch); + } + }); } }