/** Receive messages over a subscription. */ public static void main(String... args) throws Exception { // set subscriber id, eg. my-sub String subscriptionId = args[0]; ProjectSubscriptionName subscriptionName = ProjectSubscriptionName.of( PROJECT_ID, subscriptionId); Subscriber subscriber = null; try { // create a subscriber bound to the asynchronous message receiver subscriber = Subscriber.newBuilder(subscriptionName, new MessageReceiverExample()).build(); subscriber.startAsync().awaitRunning(); // Continue to listen to messages while (true) { PubsubMessage message = messages.take(); System.out.println("Message Id: " + message.getMessageId()); System.out.println("Data: " + message.getData().toStringUtf8()); } } finally { if (subscriber != null) { subscriber.stopAsync(); } } } }
private Subscriber createSubscriberWithCustomCredentials() throws Exception { // [START pubsub_subscriber_custom_credentials] CredentialsProvider credentialsProvider = FixedCredentialsProvider.create( ServiceAccountCredentials.fromStream(new FileInputStream("credentials.json"))); Subscriber subscriber = Subscriber.newBuilder(subscriptionName, receiver) .setCredentialsProvider(credentialsProvider) .build(); // [END pubsub_subscriber_custom_credentials] return subscriber; }
@Override public Subscriber createSubscriber(String subscriptionName, MessageReceiver receiver) { Subscriber.Builder subscriberBuilder = Subscriber.newBuilder( ProjectSubscriptionName.of(this.projectId, subscriptionName), receiver); if (this.channelProvider != null) { subscriberBuilder.setChannelProvider(this.channelProvider); } if (this.executorProvider != null) { subscriberBuilder.setExecutorProvider(this.executorProvider); } if (this.credentialsProvider != null) { subscriberBuilder.setCredentialsProvider(this.credentialsProvider); } if (this.headerProvider != null) { subscriberBuilder.setHeaderProvider(this.headerProvider); } if (this.systemExecutorProvider != null) { subscriberBuilder.setSystemExecutorProvider(this.systemExecutorProvider); } if (this.flowControlSettings != null) { subscriberBuilder.setFlowControlSettings(this.flowControlSettings); } if (this.maxAckExtensionPeriod != null) { subscriberBuilder.setMaxAckExtensionPeriod(this.maxAckExtensionPeriod); } if (this.parallelPullCount != null) { subscriberBuilder.setParallelPullCount(this.parallelPullCount); } return subscriberBuilder.build(); }
@Override public Subscriber createSubscriber(String subscriptionName, MessageReceiver receiver) { Subscriber.Builder subscriberBuilder = Subscriber.newBuilder( ProjectSubscriptionName.of(this.projectId, subscriptionName), receiver); if (this.channelProvider != null) { subscriberBuilder.setChannelProvider(this.channelProvider); } if (this.executorProvider != null) { subscriberBuilder.setExecutorProvider(this.executorProvider); } if (this.credentialsProvider != null) { subscriberBuilder.setCredentialsProvider(this.credentialsProvider); } if (this.headerProvider != null) { subscriberBuilder.setHeaderProvider(this.headerProvider); } if (this.systemExecutorProvider != null) { subscriberBuilder.setSystemExecutorProvider(this.systemExecutorProvider); } if (this.flowControlSettings != null) { subscriberBuilder.setFlowControlSettings(this.flowControlSettings); } if (this.maxAckExtensionPeriod != null) { subscriberBuilder.setMaxAckExtensionPeriod(this.maxAckExtensionPeriod); } if (this.parallelPullCount != null) { subscriberBuilder.setParallelPullCount(this.parallelPullCount); } return subscriberBuilder.build(); }
public static GooglePubsubSubscriber buildSubscriber(GooglePubsubProperties.GooglePubsubSubscription subscription, PubsubMessageHandler pubsubMessageHandler) { Subscriber subscriber; String subscriptionName = subscription.getSubscriptionName(); String project = subscription.getProject(); String jsonPath = subscription.getJsonPath(); GooglePubsubMessageReceiver messageReceiver = new GooglePubsubMessageReceiver(subscription.getAckDeadlineSeconds(), subscription.getName(), pubsubMessageHandler, subscription.getTemplatePath()); if (jsonPath != null && !jsonPath.isEmpty()) { Credentials credentials = null; try { credentials = ServiceAccountCredentials.fromStream(new FileInputStream(jsonPath)); } catch (IOException e) { log.error("Could not import Google Pubsub json credentials: {}", e.getMessage()); } subscriber = Subscriber .defaultBuilder(SubscriptionName.create(project, subscriptionName), messageReceiver) .setCredentialsProvider(FixedCredentialsProvider.create(credentials)) .setMaxAckExtensionPeriod(Duration.ofSeconds(0)) .build(); } else { subscriber = Subscriber.defaultBuilder(SubscriptionName.create(project, subscriptionName), messageReceiver).build(); } subscriber.addListener(new GooglePubsubFailureHandler(formatSubscriptionName(project, subscriptionName)), MoreExecutors.directExecutor()); return new GooglePubsubSubscriber(subscription.getName(), subscriptionName, project, subscriber); }
@Override public ListenableFuture<RunResult> doRun() { synchronized (this) { if (subscriber.isRunning()) { return Futures.immediateFuture(RunResult.empty()); } if (shuttingDown) { return Futures.immediateFailedFuture( new IllegalStateException("the task is shutting down")); } try { subscriber.startAsync().awaitRunning(); } catch (Exception e) { log.error("Fatal error from subscriber.", e); subscriber = Subscriber.defaultBuilder(this.subscription, this).build(); return Futures.immediateFailedFuture(e); } return Futures.immediateFuture(RunResult.empty()); } }
private CPSSubscriberTask(StartRequest request) { super(request, "gcloud", MetricsHandler.MetricName.END_TO_END_LATENCY); this.subscription = SubscriptionName.create(request.getProject(), request.getPubsubOptions().getSubscription()); try { this.subscriber = Subscriber.defaultBuilder(this.subscription, this) .setParallelPullCount(Runtime.getRuntime().availableProcessors() * 5) .build(); } catch (Exception e) { throw new RuntimeException(e); } }
synchronized public void start() { this.subscriber = Subscriber .newBuilder(ProjectSubscriptionName.of(project, subscriptionName), messageReceiver) .setCredentialsProvider(FixedCredentialsProvider.create(credentials)) .build(); subscriber.addListener(new GooglePubsubFailureHandler(this, formatSubscriptionName(project, subscriptionName)), MoreExecutors.directExecutor()); subscriber.startAsync().awaitRunning(); log.info("Google Pubsub subscriber started for {}", formatSubscriptionName(project, subscriptionName)); }
.build(); subscriber.startAsync();
.build(); subscriber.startAsync();
.build(); subscriber.startAsync();
.build(); subscriber.startAsync();
.build(); subscriber.startAsync();
.build(); subscriber.startAsync();
.build(); subscriber.startAsync();
.build(); subscriber.startAsync();
subscriber = Subscriber.newBuilder(subName, receiver).build(); subscriber.startAsync().awaitRunning();
.build(); subscriber.addListener( new Subscriber.Listener() {
Subscriber subscriber = null; try { subscriber = Subscriber.newBuilder(subscription, receiver).build(); subscriber.addListener( new Subscriber.Listener() {
try { subscriber = Subscriber.newBuilder(subscriptionName, receiver).build(); subscriber.startAsync();