Example usage for com.amazonaws.services.sqs.model SendMessageRequest withMessageGroupId

List of usage examples for com.amazonaws.services.sqs.model SendMessageRequest withMessageGroupId

Introduction

In this page you can find the example usage for com.amazonaws.services.sqs.model SendMessageRequest withMessageGroupId.

Prototype


public SendMessageRequest withMessageGroupId(String messageGroupId) 

Source Link

Document

This parameter applies only to FIFO (first-in-first-out) queues.

Usage

From source file:org.thingsboard.rule.engine.aws.sqs.TbSqsNode.java

License:Apache License

private TbMsg publishMessage(TbContext ctx, TbMsg msg) {
    String queueUrl = TbNodeUtils.processPattern(this.config.getQueueUrlPattern(), msg.getMetaData());
    SendMessageRequest sendMsgRequest = new SendMessageRequest();
    sendMsgRequest.withQueueUrl(queueUrl);
    sendMsgRequest.withMessageBody(msg.getData());
    Map<String, MessageAttributeValue> messageAttributes = new HashMap<>();
    this.config.getMessageAttributes().forEach((k, v) -> {
        String name = TbNodeUtils.processPattern(k, msg.getMetaData());
        String val = TbNodeUtils.processPattern(v, msg.getMetaData());
        messageAttributes.put(name, new MessageAttributeValue().withDataType("String").withStringValue(val));
    });// www  . j a v a  2  s  . c  om
    sendMsgRequest.setMessageAttributes(messageAttributes);
    if (this.config.getQueueType() == TbSqsNodeConfiguration.QueueType.STANDARD) {
        sendMsgRequest.withDelaySeconds(this.config.getDelaySeconds());
    } else {
        sendMsgRequest.withMessageDeduplicationId(msg.getId().toString());
        sendMsgRequest.withMessageGroupId(msg.getOriginator().toString());
    }
    SendMessageResult result = this.sqsClient.sendMessage(sendMsgRequest);
    return processSendMessageResult(ctx, msg, result);
}