List of usage examples for com.amazonaws.services.sqs.model GetQueueAttributesResult getAttributes
public java.util.Map<String, String> getAttributes()
A map of attributes to their respective values.
From source file:org.duracloud.common.queue.aws.SQSTaskQueue.java
License:Apache License
@Override public Integer size() { GetQueueAttributesResult result = queryQueueAttributes(QueueAttributeName.ApproximateNumberOfMessages); String sizeStr = result.getAttributes().get(QueueAttributeName.ApproximateNumberOfMessages.name()); Integer size = Integer.parseInt(sizeStr); return size;//w w w .j a va 2 s. c om }
From source file:org.duracloud.common.queue.aws.SQSTaskQueue.java
License:Apache License
@Override public Integer sizeIncludingInvisibleAndDelayed() { GetQueueAttributesResult result = queryQueueAttributes(QueueAttributeName.ApproximateNumberOfMessages, QueueAttributeName.ApproximateNumberOfMessagesNotVisible, QueueAttributeName.ApproximateNumberOfMessagesDelayed); Map<String, String> attributes = result.getAttributes(); int size = 0; for (String attrKey : attributes.keySet()) { String value = attributes.get(attrKey); log.debug("retrieved attribute: {}={}", attrKey, value); int intValue = Integer.parseInt(value); size += intValue;/*from w ww .j a v a 2 s . c o m*/ } log.debug("calculated size: {}", size); return size; }
From source file:org.duracloud.common.queue.aws.SQSTaskQueue.java
License:Apache License
private Integer getVisibilityTimeout() { GetQueueAttributesResult result = queryQueueAttributes(QueueAttributeName.VisibilityTimeout); String visStr = result.getAttributes().get(QueueAttributeName.VisibilityTimeout.name()); Integer visibilityTimeout = Integer.parseInt(visStr); return visibilityTimeout; }
From source file:org.duracloud.common.sns.SnsSubscriptionManager.java
License:Apache License
public synchronized void connect() { if (initialized) { throw new DuraCloudRuntimeException("this manager is already connected"); }//from ww w.j a v a 2s .c o m //create sqs queue log.info("creating sqs queue"); CreateQueueRequest request = new CreateQueueRequest(this.queueName); Map<String, String> attributes = new HashMap<String, String>(); attributes.put("ReceiveMessageWaitTimeSeconds", "20"); request.setAttributes(attributes); CreateQueueResult result; try { result = sqsClient.createQueue(request); this.queueUrl = result.getQueueUrl(); log.info("sqs queue created: {}", this.queueUrl); } catch (QueueNameExistsException ex) { log.info("queue with name {} already exists."); GetQueueUrlResult queueUrlResult = sqsClient.getQueueUrl(this.queueName); this.queueUrl = queueUrlResult.getQueueUrl(); log.info("sqs queue url retrieved: {}", this.queueUrl); } String queueArnKey = "QueueArn"; GetQueueAttributesResult getQueueAttrResult = sqsClient.getQueueAttributes(this.queueUrl, Arrays.asList(queueArnKey)); log.info("subscribing {} to {}", queueUrl, topicArn); String queueArn = getQueueAttrResult.getAttributes().get(queueArnKey); SubscribeResult subscribeResult = this.snsClient.subscribe(topicArn, "sqs", queueArn); this.subscriptionArn = subscribeResult.getSubscriptionArn(); Map<String, String> queueAttributes = new HashMap<String, String>(); queueAttributes.put("Policy", generateSqsPolicyForTopic(queueArn, topicArn)); sqsClient.setQueueAttributes(new SetQueueAttributesRequest(queueUrl, queueAttributes)); log.info("subscription complete: {}", this.subscriptionArn); //subscribe queue to topic this.initialized = true; startPolling(); }
From source file:org.lendingclub.mercator.aws.SQSScanner.java
License:Apache License
private void scanQueue(String url) { GetQueueAttributesResult result = getClient().getQueueAttributes(url, Lists.newArrayList("All")); projectQueue(url, result.getAttributes()); }
From source file:org.springframework.cloud.aws.messaging.listener.AbstractMessageListenerContainer.java
License:Apache License
private QueueAttributes queueAttributes(String queue, SqsMessageDeletionPolicy deletionPolicy) { String destinationUrl;//from ww w. j a v a 2 s. co m try { destinationUrl = getDestinationResolver().resolveDestination(queue); } catch (DestinationResolutionException e) { getLogger().warn(String.format("The queue with name '%s' does not exist.", queue), e); return null; } ReceiveMessageRequest receiveMessageRequest = new ReceiveMessageRequest(destinationUrl) .withAttributeNames(RECEIVING_ATTRIBUTES).withMessageAttributeNames(RECEIVING_MESSAGE_ATTRIBUTES); if (getMaxNumberOfMessages() != null) { receiveMessageRequest.withMaxNumberOfMessages(getMaxNumberOfMessages()); } else { receiveMessageRequest.withMaxNumberOfMessages(DEFAULT_MAX_NUMBER_OF_MESSAGES); } if (getVisibilityTimeout() != null) { receiveMessageRequest.withVisibilityTimeout(getVisibilityTimeout()); } if (getWaitTimeOut() != null) { receiveMessageRequest.setWaitTimeSeconds(getWaitTimeOut()); } GetQueueAttributesResult queueAttributes = getAmazonSqs().getQueueAttributes( new GetQueueAttributesRequest(destinationUrl).withAttributeNames(QueueAttributeName.RedrivePolicy)); boolean hasRedrivePolicy = queueAttributes.getAttributes() .containsKey(QueueAttributeName.RedrivePolicy.toString()); return new QueueAttributes(receiveMessageRequest, hasRedrivePolicy, deletionPolicy); }
From source file:org.transitime.maintenance.AwsGlacierInventoryRetriever.java
License:Open Source License
/** * For retrieving vault inventory. For initializing SQS for determining when * job completed. Does nothing if member snsTopicName is null. Sets members * sqsQueueURL, sqsQueueARN, and sqsClient. */// w w w .j av a2s .c om private void setupSQS() { // If no sqsQueueName setup then simply return if (sqsQueueName == null) return; CreateQueueRequest request = new CreateQueueRequest().withQueueName(sqsQueueName); CreateQueueResult result = sqsClient.createQueue(request); sqsQueueURL = result.getQueueUrl(); GetQueueAttributesRequest qRequest = new GetQueueAttributesRequest().withQueueUrl(sqsQueueURL) .withAttributeNames("QueueArn"); GetQueueAttributesResult qResult = sqsClient.getQueueAttributes(qRequest); sqsQueueARN = qResult.getAttributes().get("QueueArn"); Policy sqsPolicy = new Policy() .withStatements(new Statement(Effect.Allow).withPrincipals(Principal.AllUsers) .withActions(SQSActions.SendMessage).withResources(new Resource(sqsQueueARN))); Map<String, String> queueAttributes = new HashMap<String, String>(); queueAttributes.put("Policy", sqsPolicy.toJson()); sqsClient.setQueueAttributes(new SetQueueAttributesRequest(sqsQueueURL, queueAttributes)); }