protected boolean processMessage()

in ordering-keys-prober/src/main/java/com/google/cloud/pubsub/prober/Prober.java [330:368]


  protected boolean processMessage(PubsubMessage message, int subscriberIndex) {
    DateTime receiveTime = DateTime.now();
    String sequenceNum = message.getAttributes().get(MESSAGE_SEQUENCE_NUMBER_KEY);
    DateTime sentTime = messageSendTime.remove(sequenceNum);
    if (sentTime != null) {
      Duration e2eLatency = new Duration(sentTime, receiveTime);
      logger.fine(
          "Received message "
              + sequenceNum
              + " with message ID "
              + message.getMessageId()
              + " on subscriber "
              + subscriberIndex
              + " in "
              + e2eLatency.getMillis()
              + "ms");
    } else {
      logger.fine(
          "Received duplicate message on subscriber "
              + subscriberIndex
              + ": "
              + message.getMessageId());
    }

    String filterValue = message.getAttributes().get(FILTERED_ATTRIBUTE);
    if (filterValue != null && filterValue.equals("true")) {
      logger.log(
          Level.WARNING,
          "Received message with ID %s that should have been filtered out. "
              + message.getMessageId(),
          message);
    }
    long currentReceivedCount = receivedCount.incrementAndGet();
    if (currentReceivedCount % 1000 == 0) {
      logger.info(String.format("Received %d messages.", currentReceivedCount));
    }

    return r.nextDouble() >= messageFailureProbability;
  }