List of usage examples for com.amazonaws.services.sqs.model SendMessageBatchRequestEntry getMessageAttributes
public java.util.Map<String, MessageAttributeValue> getMessageAttributes()
Each message attribute consists of a Name, Type, and Value.
From source file:com.amazon.sqs.javamessaging.AmazonSQSExtendedClient.java
License:Open Source License
private boolean isLarge(SendMessageBatchRequestEntry batchEntry) { int msgAttributesSize = getMsgAttributesSize(batchEntry.getMessageAttributes()); long msgBodySize = getStringSizeInBytes(batchEntry.getMessageBody()); long totalMsgSize = msgAttributesSize + msgBodySize; return (totalMsgSize > clientConfiguration.getMessageSizeThreshold()); }
From source file:com.amazon.sqs.javamessaging.AmazonSQSExtendedClient.java
License:Open Source License
private SendMessageBatchRequestEntry storeMessageInS3(SendMessageBatchRequestEntry batchEntry) { checkMessageAttributes(batchEntry.getMessageAttributes()); String s3Key = UUID.randomUUID().toString(); // Read the content of the message from message body String messageContentStr = batchEntry.getMessageBody(); Long messageContentSize = getStringSizeInBytes(messageContentStr); // Add a new message attribute as a flag MessageAttributeValue messageAttributeValue = new MessageAttributeValue(); messageAttributeValue.setDataType("Number"); messageAttributeValue.setStringValue(messageContentSize.toString()); batchEntry.addMessageAttributesEntry(SQSExtendedClientConstants.RESERVED_ATTRIBUTE_NAME, messageAttributeValue);/*from w w w . j av a 2 s.c o m*/ // Store the message content in S3. storeTextInS3(s3Key, messageContentStr, messageContentSize); LOG.info("S3 object created, Bucket name: " + clientConfiguration.getS3BucketName() + ", Object key: " + s3Key + "."); // Convert S3 pointer (bucket name, key, etc) to JSON string MessageS3Pointer s3Pointer = new MessageS3Pointer(clientConfiguration.getS3BucketName(), s3Key); String s3PointerStr = getJSONFromS3Pointer(s3Pointer); // Storing S3 pointer in the message body. batchEntry.setMessageBody(s3PointerStr); return batchEntry; }
From source file:smartthings.brave.sqs.TracingAmazonSQSClient.java
License:Apache License
@Override public SendMessageBatchResult sendMessageBatch(SendMessageBatchRequest sendMessageBatchRequest) { List<Span> oneWays = new LinkedList<>(); for (SendMessageBatchRequestEntry entry : sendMessageBatchRequest.getEntries()) { Span s = withEndpoint(tracing.tracer().nextSpan()).kind(Span.Kind.CLIENT).start(); parser.request(sendMessageBatchRequest, s); injector.inject(s.context(), entry.getMessageAttributes()); oneWays.add(s);/*from w w w . jav a 2s. c o m*/ } SendMessageBatchResult result = delegate.sendMessageBatch(sendMessageBatchRequest); // flush after success so we don't start one way spans on a request failure. for (Span oneWay : oneWays) { oneWay.flush(); } return result; }