com.amazonaws.services.sqs.model.ReceiveMessageRequest.withWaitTimeSeconds()方法的使用及代码示例

x33g5p2x  于2022-01-29 转载在 其他  
字(11.6k)|赞(0)|评价(0)|浏览(104)

本文整理了Java中com.amazonaws.services.sqs.model.ReceiveMessageRequest.withWaitTimeSeconds方法的一些代码示例,展示了ReceiveMessageRequest.withWaitTimeSeconds的具体用法。这些代码示例主要来源于Github/Stackoverflow/Maven等平台,是从一些精选项目中提取出来的代码,具有较强的参考意义,能在一定程度帮忙到你。ReceiveMessageRequest.withWaitTimeSeconds方法的具体详情如下:
包路径:com.amazonaws.services.sqs.model.ReceiveMessageRequest
类名称:ReceiveMessageRequest
方法名:withWaitTimeSeconds

ReceiveMessageRequest.withWaitTimeSeconds介绍

[英]The duration (in seconds) for which the call waits for a message to arrive in the queue before returning. If a message is available, the call returns sooner than WaitTimeSeconds. If no messages are available and the wait time expires, the call returns successfully with an empty list of messages.
[中]呼叫在返回之前等待消息到达队列的持续时间(秒)。如果有消息,则通话会在[$0$]之前返回。如果没有可用消息且等待时间到期,则呼叫将成功返回,消息列表为空。

代码示例

代码示例来源:origin: aws/aws-sdk-java

/**
   * Attempts to retrieve messages from SQS and upon completion (successful or unsuccessful)
   * reports the batch as complete and open
   */
  public void run() {
    try {
      visibilityDeadlineNano = System.nanoTime() + visibilityTimeoutNanos;
      ReceiveMessageRequest request = new ReceiveMessageRequest(qUrl).withMaxNumberOfMessages(config
          .getMaxBatchSize());
      ResultConverter.appendUserAgent(request, AmazonSQSBufferedAsyncClient.USER_AGENT);
      if (config.getVisibilityTimeoutSeconds() > 0) {
        request.setVisibilityTimeout(config.getVisibilityTimeoutSeconds());
        visibilityDeadlineNano = System.nanoTime()
            + TimeUnit.NANOSECONDS.convert(config.getVisibilityTimeoutSeconds(), TimeUnit.SECONDS);
      }
      if (config.isLongPoll()) {
        request.withWaitTimeSeconds(config.getLongPollWaitTimeoutSeconds());
      }
      messages = sqsClient.receiveMessage(request).getMessages();
    } catch (AmazonClientException e) {
      exception = e;
    } finally {
      // whatever happened, we are done and can be considered open
      open = true;
      parentBuffer.reportBatchFinished(this);
    }
  }
}

代码示例来源:origin: awsdocs/aws-doc-sdk-examples

.withWaitTimeSeconds(20);
sqs.receiveMessage(receive_request);

代码示例来源:origin: aws-amplify/aws-sdk-android

/**
   * Attempts to retrieve messages from SQS and upon completion
   * (successful or unsuccessful) reports the batch as complete and open
   */
  @Override
  public void run() {
    try {
      visibilityDeadlineNano = System.nanoTime() + visibilityTimeoutNanos;
      ReceiveMessageRequest request = new ReceiveMessageRequest(qUrl)
          .withMaxNumberOfMessages(config.getMaxBatchSize());
      ResultConverter.appendUserAgent(request, AmazonSQSBufferedAsyncClient.USER_AGENT);
      if (config.getVisibilityTimeoutSeconds() > 0) {
        request.setVisibilityTimeout(config.getVisibilityTimeoutSeconds());
        visibilityDeadlineNano = System.nanoTime()
            + TimeUnit.NANOSECONDS.convert(config.getVisibilityTimeoutSeconds(),
                TimeUnit.SECONDS);
      }
      if (config.isLongPoll()) {
        request.withWaitTimeSeconds(config.getLongPollWaitTimeoutSeconds());
      }
      messages = sqsClient.receiveMessage(request).getMessages();
    } catch (AmazonClientException e) {
      exception = e;
    } finally {
      // whatever happened, we are done and can be considered open
      open = true;
      parentBuffer.reportBatchFinished(this);
    }
  }
}

代码示例来源:origin: com.github.davidmoten/rxjava2-aws

private static ReceiveMessageRequest request(String queueUrl, int waitTimeSeconds) {
  return new ReceiveMessageRequest(queueUrl).withMaxNumberOfMessages(20).withWaitTimeSeconds(waitTimeSeconds);
}

代码示例来源:origin: gofore/aws-training

@Get("json")
public JsonNode logs() {
  ReceiveMessageRequest request = new ReceiveMessageRequest(queueUrl)
      .withWaitTimeSeconds(20)
      .withMaxNumberOfMessages(10);
  return sqsClient.receiveMessage(request)
      .thenApply(ReceiveMessageResult::getMessages)
      .whenComplete(Consumers.onSuccess(msgs -> msgs.forEach(deleteMessage())))
      .thenApply(msgs -> msgs.stream().map(readNode()))
      .thenApply(toArray())
      .join();
}

代码示例来源:origin: com.hotels/shunting-yard-receiver-sqs

private void readRecordsIfNeeded() {
 while (records == null || !records.hasNext()) {
  ReceiveMessageRequest request = new ReceiveMessageRequest()
    .withQueueUrl(queueUrl)
    .withWaitTimeSeconds(waitTimeSeconds);
  records = consumer.receiveMessage(request).getMessages().iterator();
 }
}

代码示例来源:origin: com.github.davidmoten/rxjava2-aws

@Override
public State call() {
  queueUrl = sqs.getQueueUrl(queueName).getQueueUrl();
  request = new ReceiveMessageRequest(queueUrl) //
      .withWaitTimeSeconds(20) //
      .withMaxNumberOfMessages(10);
  return new State(new LinkedList<>());
}

代码示例来源:origin: com.netflix.spinnaker.echo/echo-pubsub-aws

private void listenForMessages() {
 while (isEnabled.get()) {
  ReceiveMessageResult receiveMessageResult = amazonSQS.receiveMessage(
   new ReceiveMessageRequest(queueId)
    .withMaxNumberOfMessages(AWS_MAX_NUMBER_OF_MESSAGES)
    .withVisibilityTimeout(subscription.getVisibilityTimeout())
    .withWaitTimeSeconds(subscription.getWaitTimeSeconds())
    .withMessageAttributeNames("All")
  );
  if (receiveMessageResult.getMessages().isEmpty()) {
   log.debug("Received no messages for queue: {}", queueARN);
   continue;
  }
  receiveMessageResult.getMessages().forEach(this::handleMessage);
 }
}

代码示例来源:origin: gofore/aws-training

@Override
public synchronized void start() throws Exception {
  if (isEnabled() && thread == null) {
    super.start();
    this.thread = new Thread(() -> {
      // loop that polls new messages with maximum long poll time
      while (isStarted()) {
        try {
          ReceiveMessageRequest request = new ReceiveMessageRequest(queueUrl)
              .withWaitTimeSeconds(LONG_POLL_SECONDS);
          ReceiveMessageResult result = sqsClient.getSqs().receiveMessage(request);
          
          // apply the message handle chain and finally delete message if
          // everything else succeeds
          Stream<CompletableFuture<Message>> messages = result.getMessages().stream()
              .map(this::handleMessage)
              .map(this::completeMessage)
              .map(this::deleteMessage);
          sequence(messages).join();
          // artificial slow down to allow scaling to happen
          Threads.sleep(10000);
        } catch (RuntimeException ex) {
          LOGGER.warn("SQS receive or message handling failed", ex);
          Threads.sleep(WAIT_AFTER_FAILURE_MILLIS);
        }
      }
    });
    this.thread.start();
  }
}

代码示例来源:origin: spring-cloud/spring-cloud-aws

@Override
public Message<String> receive(long timeout) {
  ReceiveMessageResult receiveMessageResult = this.amazonSqs.receiveMessage(
      new ReceiveMessageRequest(this.queueUrl).
          withMaxNumberOfMessages(1).
          withWaitTimeSeconds(Long.valueOf(timeout).intValue()).
          withAttributeNames(ATTRIBUTE_NAMES).
          withMessageAttributeNames(MESSAGE_ATTRIBUTE_NAMES));
  if (receiveMessageResult.getMessages().isEmpty()) {
    return null;
  }
  com.amazonaws.services.sqs.model.Message amazonMessage = receiveMessageResult.getMessages().get(0);
  Message<String> message = createMessage(amazonMessage);
  this.amazonSqs.deleteMessage(new DeleteMessageRequest(this.queueUrl, amazonMessage.getReceiptHandle()));
  return message;
}

代码示例来源:origin: org.springframework.cloud/spring-cloud-aws-messaging

@Override
public Message<String> receive(long timeout) {
  ReceiveMessageResult receiveMessageResult = this.amazonSqs.receiveMessage(
      new ReceiveMessageRequest(this.queueUrl).
          withMaxNumberOfMessages(1).
          withWaitTimeSeconds(Long.valueOf(timeout).intValue()).
          withAttributeNames(ATTRIBUTE_NAMES).
          withMessageAttributeNames(MESSAGE_ATTRIBUTE_NAMES));
  if (receiveMessageResult.getMessages().isEmpty()) {
    return null;
  }
  com.amazonaws.services.sqs.model.Message amazonMessage = receiveMessageResult.getMessages().get(0);
  Message<String> message = createMessage(amazonMessage);
  this.amazonSqs.deleteMessage(new DeleteMessageRequest(this.queueUrl, amazonMessage.getReceiptHandle()));
  return message;
}

代码示例来源:origin: Erudika/para

withMaxNumberOfMessages(maxForBatch).withWaitTimeSeconds(POLLING_INTERVAL)).getMessages();
if (list != null && !list.isEmpty()) {
  List<DeleteMessageBatchRequestEntry> del = new ArrayList<>();

代码示例来源:origin: com.erudika/para-server

withMaxNumberOfMessages(maxForBatch).withWaitTimeSeconds(POLLING_INTERVAL)).getMessages();
if (list != null && !list.isEmpty()) {
  List<DeleteMessageBatchRequestEntry> del = new ArrayList<>();

代码示例来源:origin: awslabs/amazon-sqs-java-messaging-lib

.withAttributeNames(ALL)
.withMessageAttributeNames(ALL)
.withWaitTimeSeconds(WAIT_TIME_SECONDS);

代码示例来源:origin: org.symphonyoss.s2.fugue/aws-fugue

/* package */ SqsSubscriber(SqsSubscriberManager manager, AmazonSQS sqsClient, String queueUrl,
  String subscriptionName, ITraceContextTransactionFactory traceFactory,
  IThreadSafeRetryableConsumer<String> consumer, ICounter counter, IBusyCounter busyCounter, String tenantId)
{
 super(manager, subscriptionName, counter, busyCounter, EXTENSION_FREQUENCY_MILLIS);
 
 if(Fugue.isDebugSingleThread())
 {
  messageBatchSize_ = 1;
 }
 
 manager_ = manager;
 sqsClient_ = sqsClient;
 queueUrl_ = queueUrl;
 traceFactory_ = traceFactory;
 consumer_ = consumer;
 nonIdleSubscriber_ = new NonIdleSubscriber();
 tenantId_ = tenantId;
 blockingPullRequest_ = new ReceiveMessageRequest(queueUrl_)
   .withMaxNumberOfMessages(messageBatchSize_ )
   .withWaitTimeSeconds(20);
 
 nonBlockingPullRequest_ = new ReceiveMessageRequest(queueUrl_)
   .withMaxNumberOfMessages(messageBatchSize_ );
}

代码示例来源:origin: com.amazonaws/amazon-sqs-java-messaging-lib

.withAttributeNames(ALL)
.withMessageAttributeNames(ALL)
.withWaitTimeSeconds(WAIT_TIME_SECONDS);

代码示例来源:origin: com.amazonaws/aws-java-sdk-sqs

/**
   * Attempts to retrieve messages from SQS and upon completion (successful or unsuccessful)
   * reports the batch as complete and open
   */
  public void run() {
    try {
      visibilityDeadlineNano = System.nanoTime() + visibilityTimeoutNanos;
      ReceiveMessageRequest request = new ReceiveMessageRequest(qUrl).withMaxNumberOfMessages(config
          .getMaxBatchSize());
      ResultConverter.appendUserAgent(request, AmazonSQSBufferedAsyncClient.USER_AGENT);
      if (config.getVisibilityTimeoutSeconds() > 0) {
        request.setVisibilityTimeout(config.getVisibilityTimeoutSeconds());
        visibilityDeadlineNano = System.nanoTime()
            + TimeUnit.NANOSECONDS.convert(config.getVisibilityTimeoutSeconds(), TimeUnit.SECONDS);
      }
      if (config.isLongPoll()) {
        request.withWaitTimeSeconds(config.getLongPollWaitTimeoutSeconds());
      }
      messages = sqsClient.receiveMessage(request).getMessages();
    } catch (AmazonClientException e) {
      exception = e;
    } finally {
      // whatever happened, we are done and can be considered open
      open = true;
      parentBuffer.reportBatchFinished(this);
    }
  }
}

代码示例来源:origin: com.amazonaws/aws-android-sdk-sqs

/**
   * Attempts to retrieve messages from SQS and upon completion
   * (successful or unsuccessful) reports the batch as complete and open
   */
  @Override
  public void run() {
    try {
      visibilityDeadlineNano = System.nanoTime() + visibilityTimeoutNanos;
      ReceiveMessageRequest request = new ReceiveMessageRequest(qUrl)
          .withMaxNumberOfMessages(config.getMaxBatchSize());
      ResultConverter.appendUserAgent(request, AmazonSQSBufferedAsyncClient.USER_AGENT);
      if (config.getVisibilityTimeoutSeconds() > 0) {
        request.setVisibilityTimeout(config.getVisibilityTimeoutSeconds());
        visibilityDeadlineNano = System.nanoTime()
            + TimeUnit.NANOSECONDS.convert(config.getVisibilityTimeoutSeconds(),
                TimeUnit.SECONDS);
      }
      if (config.isLongPoll()) {
        request.withWaitTimeSeconds(config.getLongPollWaitTimeoutSeconds());
      }
      messages = sqsClient.receiveMessage(request).getMessages();
    } catch (AmazonClientException e) {
      exception = e;
    } finally {
      // whatever happened, we are done and can be considered open
      open = true;
      parentBuffer.reportBatchFinished(this);
    }
  }
}

代码示例来源:origin: com.netflix.spinnaker.clouddriver/clouddriver-aws

.withMaxNumberOfMessages(AWS_MAX_NUMBER_OF_MESSAGES)
  .withVisibilityTimeout(properties.getVisibilityTimeout())
  .withWaitTimeSeconds(properties.getWaitTimeSeconds())
);

代码示例来源:origin: spring-projects/spring-integration-aws

@Bean
public AmazonSQSAsync amazonSqs() {
  AmazonSQSAsync sqs = mock(AmazonSQSAsync.class);
  given(sqs.getQueueUrl(new GetQueueUrlRequest("testQueue")))
      .willReturn(new GetQueueUrlResult().withQueueUrl("http://testQueue.amazonaws.com"));
  given(sqs.receiveMessage(new ReceiveMessageRequest("http://testQueue.amazonaws.com")
      .withAttributeNames("All")
      .withMessageAttributeNames("All")
      .withMaxNumberOfMessages(10)
      .withWaitTimeSeconds(20)))
      .willReturn(new ReceiveMessageResult()
          .withMessages(new Message().withBody("messageContent"),
              new Message().withBody("messageContent2")))
      .willReturn(new ReceiveMessageResult());
  given(sqs.getQueueAttributes(any(GetQueueAttributesRequest.class)))
      .willReturn(new GetQueueAttributesResult());
  return sqs;
}

相关文章

微信公众号

最新文章

更多