• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    迪恩网络公众号

Java ReceivedMessage类代码示例

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

本文整理汇总了Java中com.google.api.services.pubsub.model.ReceivedMessage的典型用法代码示例。如果您正苦于以下问题:Java ReceivedMessage类的具体用法?Java ReceivedMessage怎么用?Java ReceivedMessage使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。



ReceivedMessage类属于com.google.api.services.pubsub.model包,在下文中一共展示了ReceivedMessage类的11个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的Java代码示例。

示例1: handlePubsubMessage

import com.google.api.services.pubsub.model.ReceivedMessage; //导入依赖的package包/类
/**
 * Attempts to send the received pubsub message to localhost as an MQTT message.
 *
 * @param msg the message received from cloud pubsub.
 */
private void handlePubsubMessage(ReceivedMessage msg, long ackDeadlineTimer) {
  Future<Boolean> checkStatusTask;
  logger.info("Sending MQTT message to localhost");
  try {
    checkStatusTask = mqttSender.publishToSubscribers(createMqttPublishMessage(msg));
  } catch (IOException e) {
    // failed to send the message. do not ack the pubsub message and wait for re-delivery.
    logger.info("MQTT send error: " + e.getMessage());
    return;
  }
  // create a task for renewing the pubsub message if needed
  GcloudRenewMessageTask renewTask = new GcloudRenewMessageTask.GcloudRenewMessageTaskBuilder()
      .withAckDeadlineTimer(ackDeadlineTimer)
      .withAckId(msg.getAckId())
      .withFutureTask(checkStatusTask)
      .withPubsub(pubsub)
      .withPubsubExecutor(pubsubExecutor)
      .withSubscriptionName(subscriptionName)
      .withTaskDelayTime(ACK_CHECK_DELAY)
      .build();
  pubsubExecutor.schedule(renewTask, ACK_CHECK_DELAY, TimeUnit.SECONDS);
}
 
开发者ID:GoogleCloudPlatform,项目名称:cloud-pubsub-mqtt-proxy,代码行数:28,代码来源:GcloudPullMessageTask.java


示例2: getMessagesFromPubsub

import com.google.api.services.pubsub.model.ReceivedMessage; //导入依赖的package包/类
private List<ReceivedMessage> getMessagesFromPubsub(String subscriptionName) throws IOException {
  PullRequest request = new PullRequest().setReturnImmediately(true).setMaxMessages(BATCH_SIZE);
  List<ReceivedMessage> msgs = pubsub.projects().subscriptions().pull(subscriptionName, request)
      .execute().getReceivedMessages();
  if (msgs == null) {
    return null;
  }
  // separate received messages into those that were published to pubsub from localhost
  // and those published from other servers
  List<ReceivedMessage> nonLocalMsgs = new LinkedList<ReceivedMessage>();
  List<String> localMessageAckIds = new LinkedList<>();
  for (ReceivedMessage msg : msgs) {
    String msgServerId = msg.getMessage().getAttributes().get(GcloudPubsub.PROXY_SERVER_ID);
    String serverId = InetAddress.getLocalHost().getCanonicalHostName();
    if (msgServerId.equals(serverId)) {
      logger.info("Discarding Pubsub message -- Message was published to pubsub from localhost");
      localMessageAckIds.add(msg.getAckId());
    } else {
      nonLocalMsgs.add(msg);
    }
  }
  if (!localMessageAckIds.isEmpty()) {
    ackPubsubMessage(localMessageAckIds);
  }
  return nonLocalMsgs;
}
 
开发者ID:GoogleCloudPlatform,项目名称:cloud-pubsub-mqtt-proxy,代码行数:27,代码来源:GcloudPullMessageTask.java


示例3: processElement

import com.google.api.services.pubsub.model.ReceivedMessage; //导入依赖的package包/类
@ProcessElement
public void processElement(ProcessContext context) {
    int num = 0;
    Instant endTime = Instant.now().plus(maxTime);
    while (num < maxNum && Instant.now().isBefore(endTime)) {
        try {
            List<String> ackIds = new ArrayList<>();
            for (ReceivedMessage receivedMessage : client.pull(spec.getDatasetProperties().subscription.getValue(),
                    maxNum - num)) {
                context.output(
                        new PubsubMessage(receivedMessage.getMessage().decodeData(), ImmutableMap.<String, String> of()));
                ackIds.add(receivedMessage.getAckId());
                num++;
            }
            if (ack && !ackIds.isEmpty()) { // do not call this when getSample, else the message will be removed
                client.ack(spec.getDatasetProperties().subscription.getValue(), ackIds);
            }
        } catch (IOException e) {
            throw TalendRuntimeException.createUnexpectedException(e);
        }
    }
}
 
开发者ID:Talend,项目名称:components,代码行数:23,代码来源:PubSubInputRuntime.java


示例4: pullOneMessage

import com.google.api.services.pubsub.model.ReceivedMessage; //导入依赖的package包/类
@Test
public void pullOneMessage() throws IOException {
  String expectedSubscription = SUBSCRIPTION.getPath();
  PullRequest expectedRequest =
      new PullRequest().setReturnImmediately(true).setMaxMessages(10);
  PubsubMessage expectedPubsubMessage = new PubsubMessage()
      .setMessageId(MESSAGE_ID)
      .encodeData(DATA.getBytes())
      .setPublishTime(String.valueOf(PUB_TIME))
      .setAttributes(
          ImmutableMap.of(TIMESTAMP_ATTRIBUTE, String.valueOf(MESSAGE_TIME),
              ID_ATTRIBUTE, RECORD_ID));
  ReceivedMessage expectedReceivedMessage =
      new ReceivedMessage().setMessage(expectedPubsubMessage)
                           .setAckId(ACK_ID);
  PullResponse expectedResponse =
      new PullResponse().setReceivedMessages(ImmutableList.of(expectedReceivedMessage));
  Mockito.when((Object) (mockPubsub.projects()
                             .subscriptions()
                             .pull(expectedSubscription, expectedRequest)
                             .execute()))
         .thenReturn(expectedResponse);
  List<IncomingMessage> acutalMessages = client.pull(REQ_TIME, SUBSCRIPTION, 10, true);
  assertEquals(1, acutalMessages.size());
  IncomingMessage actualMessage = acutalMessages.get(0);
  assertEquals(ACK_ID, actualMessage.ackId);
  assertEquals(DATA, new String(actualMessage.elementBytes));
  assertEquals(RECORD_ID, actualMessage.recordId);
  assertEquals(REQ_TIME, actualMessage.requestTimeMsSinceEpoch);
  assertEquals(MESSAGE_TIME, actualMessage.timestampMsSinceEpoch);
}
 
开发者ID:apache,项目名称:beam,代码行数:32,代码来源:PubsubJsonClientTest.java


示例5: createMqttPublishMessage

import com.google.api.services.pubsub.model.ReceivedMessage; //导入依赖的package包/类
private PublishMessage createMqttPublishMessage(ReceivedMessage msg) {
  byte [] mqttPayload = BaseEncoding.base64().decode(msg.getMessage().getData());
  Map<String, String> mqttAttributes = msg.getMessage().getAttributes();
  PublishMessage mqttMsg = new PublishMessage.PublishMessageBuilder()
      .withPayload(mqttPayload)
      .withTopic(mqttAttributes.get(GcloudPubsub.MQTT_TOPIC_NAME))
      .withRetain(Boolean.valueOf(mqttAttributes.get(GcloudPubsub.MQTT_RETAIN)))
      .build();
  return mqttMsg;
}
 
开发者ID:GoogleCloudPlatform,项目名称:cloud-pubsub-mqtt-proxy,代码行数:11,代码来源:GcloudPullMessageTask.java


示例6: outputCsv

import com.google.api.services.pubsub.model.ReceivedMessage; //导入依赖的package包/类
private void outputCsv(Pipeline pipeline) throws IOException {
    String testID = "csvBasicTest" + new Random().nextInt();
    final String fieldDelimited = ";";

    List<Person> expectedPersons = Person.genRandomList(testID, maxRecords);
    List<String> expectedMessages = new ArrayList<>();
    List<String[]> sendMessages = new ArrayList<>();
    for (Person person : expectedPersons) {
        expectedMessages.add(person.toCSV(fieldDelimited));
        sendMessages.add(person.toCSV(fieldDelimited).split(fieldDelimited));
    }

    PubSubOutputRuntime outputRuntime = new PubSubOutputRuntime();
    outputRuntime.initialize(runtimeContainer,
            createOutput(createDatasetFromCSV(createDatastore(), topicName, fieldDelimited)));

    PCollection<IndexedRecord> records = (PCollection<IndexedRecord>) pipeline.apply(Create.of(sendMessages))
            .apply((PTransform) ConvertToIndexedRecord.of());

    records.setCoder(LazyAvroCoder.of()).apply(outputRuntime);

    pipeline.run().waitUntilFinish();

    List<String> actual = new ArrayList<>();
    while (true) {
        List<ReceivedMessage> messages = client.pull(subscriptionName, maxRecords);
        List<String> ackIds = new ArrayList<>();
        for (ReceivedMessage message : messages) {
            actual.add(new String(message.getMessage().decodeData()));
            ackIds.add(message.getAckId());
        }
        client.ack(subscriptionName, ackIds);
        if (actual.size() >= maxRecords) {
            break;
        }
    }
    assertThat(actual, containsInAnyOrder(expectedMessages.toArray()));
}
 
开发者ID:Talend,项目名称:components,代码行数:39,代码来源:PubSubOutputRuntimeTestIT.java


示例7: outputAvro

import com.google.api.services.pubsub.model.ReceivedMessage; //导入依赖的package包/类
private void outputAvro(Pipeline pipeline) throws IOException {
    String testID = "avroBasicTest" + new Random().nextInt();

    List<Person> expectedPersons = Person.genRandomList(testID, maxRecords);
    List<String> expectedMessages = new ArrayList<>();
    List<IndexedRecord> sendMessages = new ArrayList<>();
    for (Person person : expectedPersons) {
        expectedMessages.add(person.toAvroRecord().toString());
        sendMessages.add(person.toAvroRecord());
    }

    PubSubOutputRuntime outputRuntime = new PubSubOutputRuntime();
    outputRuntime.initialize(runtimeContainer,
            createOutput(createDatasetFromAvro(createDatastore(), topicName, Person.schema.toString())));

    PCollection<IndexedRecord> output = (PCollection<IndexedRecord>) pipeline.apply(Create.of(sendMessages));
    output.apply(outputRuntime);

    pipeline.run().waitUntilFinish();

    List<String> actual = new ArrayList<>();
    while (true) {
        List<ReceivedMessage> messages = client.pull(subscriptionName, maxRecords);
        List<String> ackIds = new ArrayList<>();
        for (ReceivedMessage message : messages) {
            actual.add(Person.desFromAvroBytes(message.getMessage().decodeData()).toAvroRecord().toString());
            ackIds.add(message.getAckId());
        }
        client.ack(subscriptionName, ackIds);
        if (actual.size() >= maxRecords) {
            break;
        }
    }
    assertThat(actual, containsInAnyOrder(expectedMessages.toArray()));
}
 
开发者ID:Talend,项目名称:components,代码行数:36,代码来源:PubSubOutputRuntimeTestIT.java


示例8: pullMessages

import com.google.api.services.pubsub.model.ReceivedMessage; //导入依赖的package包/类
/**
 * Keeps pulling messages from the given subscription.
 *
 * @param client Cloud Pub/Sub client.
 * @param args Arguments as an array of String.
 * @throws IOException when Cloud Pub/Sub API calls fail.
 */
public static void pullMessages(final Pubsub client, final String[] args)
        throws IOException {
    Main.checkArgsLength(args, 3);
    String subscriptionName = PubsubUtils.getFullyQualifiedResourceName(
            PubsubUtils.ResourceType.SUBSCRIPTION, args[0], args[2]);
    PullRequest pullRequest = new PullRequest()
            .setReturnImmediately(false)
            .setMaxMessages(Main.BATCH_SIZE);

    do {
        PullResponse pullResponse;
        pullResponse = client.projects().subscriptions()
                .pull(subscriptionName, pullRequest)
                .execute();
        List<String> ackIds = new ArrayList<>(Main.BATCH_SIZE);
        List<ReceivedMessage> receivedMessages =
                pullResponse.getReceivedMessages();
        if (receivedMessages != null) {
            for (ReceivedMessage receivedMessage : receivedMessages) {
                PubsubMessage pubsubMessage =
                        receivedMessage.getMessage();
                if (pubsubMessage != null
                        && pubsubMessage.decodeData() != null) {
                    System.out.println(
                            new String(pubsubMessage.decodeData(),
                                    "UTF-8"));
                }
                ackIds.add(receivedMessage.getAckId());
            }
            AcknowledgeRequest ackRequest = new AcknowledgeRequest();
            ackRequest.setAckIds(ackIds);
            client.projects().subscriptions()
                    .acknowledge(subscriptionName, ackRequest)
                    .execute();
        }
    } while (System.getProperty(Main.LOOP_ENV_NAME) != null);
}
 
开发者ID:GoogleCloudPlatform,项目名称:cloud-pubsub-samples-java,代码行数:45,代码来源:SubscriptionMethods.java


示例9: pull

import com.google.api.services.pubsub.model.ReceivedMessage; //导入依赖的package包/类
@Override
public List<IncomingMessage> pull(
    long requestTimeMsSinceEpoch,
    SubscriptionPath subscription,
    int batchSize,
    boolean returnImmediately) throws IOException {
  PullRequest request = new PullRequest()
      .setReturnImmediately(returnImmediately)
      .setMaxMessages(batchSize);
  PullResponse response = pubsub.projects()
                                .subscriptions()
                                .pull(subscription.getPath(), request)
                                .execute();
  if (response.getReceivedMessages() == null || response.getReceivedMessages().size() == 0) {
    return ImmutableList.of();
  }
  List<IncomingMessage> incomingMessages = new ArrayList<>(response.getReceivedMessages().size());
  for (ReceivedMessage message : response.getReceivedMessages()) {
    PubsubMessage pubsubMessage = message.getMessage();
    @Nullable Map<String, String> attributes = pubsubMessage.getAttributes();

    // Payload.
    byte[] elementBytes = pubsubMessage.decodeData();

    // Timestamp.
    long timestampMsSinceEpoch =
        extractTimestamp(timestampAttribute, message.getMessage().getPublishTime(), attributes);

    // Ack id.
    String ackId = message.getAckId();
    checkState(!Strings.isNullOrEmpty(ackId));

    // Record id, if any.
    @Nullable String recordId = null;
    if (idAttribute != null && attributes != null) {
      recordId = attributes.get(idAttribute);
    }
    if (Strings.isNullOrEmpty(recordId)) {
      // Fall back to the Pubsub provided message id.
      recordId = pubsubMessage.getMessageId();
    }

    incomingMessages.add(new IncomingMessage(elementBytes, attributes, timestampMsSinceEpoch,
                                             requestTimeMsSinceEpoch, ackId, recordId));
  }

  return incomingMessages;
}
 
开发者ID:apache,项目名称:beam,代码行数:49,代码来源:PubsubJsonClient.java


示例10: run

import com.google.api.services.pubsub.model.ReceivedMessage; //导入依赖的package包/类
@Override
public void run() {
	try {
		while (!pubsubReceiver.isStopped()) {

			final PullRequest pullRequest = new PullRequest().setReturnImmediately(false)
					.setMaxMessages(pubsubReceiver.getBatchSize());
			PullResponse pullResponse;
			pullResponse = pubsubClient.projects().subscriptions().pull(pubsubReceiver.getSubscription(), pullRequest)
					.execute();
			final List<ReceivedMessage> receivedMessages = pullResponse.getReceivedMessages();

			if (CollectionUtils.isNotEmpty(receivedMessages)) {

				final List<String> messages = new ArrayList<>(pubsubReceiver.getBatchSize());
				final List<String> ackIds = new ArrayList<>(pubsubReceiver.getBatchSize());
				for (final ReceivedMessage receivedMessage : receivedMessages) {
					final PubsubMessage pubsubMessage = receivedMessage.getMessage();

					if (pubsubMessage != null) {
						if (decodeData) {
							messages.add(new String(pubsubMessage.decodeData(), StandardCharsets.UTF_8));
						} else {
							messages.add(pubsubMessage.getData());
						}
					}
					ackIds.add(receivedMessage.getAckId());
				}

				if (CollectionUtils.isNotEmpty(messages)) {
					pubsubReceiver.store(messages.iterator());
				}

				final AcknowledgeRequest ackRequest = new AcknowledgeRequest().setAckIds(ackIds);
				pubsubClient.projects().subscriptions().acknowledge(pubsubReceiver.getSubscription(), ackRequest)
						.execute();
			}
		}
	} catch (Throwable t) {
		pubsubReceiver.restart(
				"Error while fetching messages from pubsub for subscription " + pubsubReceiver.getSubscription(), t);
	}

}
 
开发者ID:SignifAi,项目名称:Spark-PubSub,代码行数:45,代码来源:PubsubReceiverWorker.java


示例11: createTopicSub

import com.google.api.services.pubsub.model.ReceivedMessage; //导入依赖的package包/类
private void createTopicSub(Pipeline pipeline) throws IOException {
    String testID = "createTopicSubTest" + new Random().nextInt();

    final String newTopicName = "tcomp-pubsub-createTopicSub" + uuid;

    final String newSubName = "tcomp-pubsub-createTopicSub-sub" + uuid;

    final String fieldDelimited = ";";

    List<Person> expectedPersons = Person.genRandomList(testID, maxRecords);
    List<String> expectedMessages = new ArrayList<>();
    List<String[]> sendMessages = new ArrayList<>();
    for (Person person : expectedPersons) {
        expectedMessages.add(person.toCSV(fieldDelimited));
        sendMessages.add(person.toCSV(fieldDelimited).split(fieldDelimited));
    }

    PubSubOutputRuntime outputRuntime = new PubSubOutputRuntime();
    PubSubOutputProperties outputProperties = createOutput(
            addSubscriptionForDataset(createDatasetFromCSV(createDatastore(), newTopicName, fieldDelimited), newSubName));
    outputProperties.topicOperation.setValue(PubSubOutputProperties.TopicOperation.CREATE_IF_NOT_EXISTS);
    outputRuntime.initialize(runtimeContainer, outputProperties);

    PCollection<IndexedRecord> records = (PCollection<IndexedRecord>) pipeline.apply(Create.of(sendMessages))
            .apply((PTransform) ConvertToIndexedRecord.of());

    records.setCoder(LazyAvroCoder.of()).apply(outputRuntime);

    pipeline.run().waitUntilFinish();

    List<String> actual = new ArrayList<>();
    while (true) {
        List<ReceivedMessage> messages = client.pull(newSubName, maxRecords);
        List<String> ackIds = new ArrayList<>();
        for (ReceivedMessage message : messages) {
            actual.add(new String(message.getMessage().decodeData()));
            ackIds.add(message.getAckId());
        }
        client.ack(newSubName, ackIds);
        if (actual.size() >= maxRecords) {
            break;
        }
    }

    client.deleteSubscription(newSubName);
    client.deleteTopic(newTopicName);
    assertThat(actual, containsInAnyOrder(expectedMessages.toArray()));
}
 
开发者ID:Talend,项目名称:components,代码行数:49,代码来源:PubSubOutputRuntimeTestIT.java



注:本文中的com.google.api.services.pubsub.model.ReceivedMessage类示例整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
Java COSObject类代码示例发布时间:2022-05-22
下一篇:
Java SDLibrary类代码示例发布时间:2022-05-22
热门推荐
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap