Example usage for com.amazonaws.services.sqs.model GetQueueAttributesResult getAttributes

List of usage examples for com.amazonaws.services.sqs.model GetQueueAttributesResult getAttributes

Introduction

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

Prototype


public java.util.Map<String, String> getAttributes() 

Source Link

Document

A map of attributes to their respective values.

Usage

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));
}