List of usage examples for com.amazonaws.services.sqs.model SendMessageRequest withMessageDeduplicationId
public SendMessageRequest withMessageDeduplicationId(String messageDeduplicationId)
This parameter applies only to FIFO (first-in-first-out) queues.
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)); });//from www. j a v a 2s .c o m 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); }