com.amazonaws.services.sqs.buffered
Class QueueBufferConfig

java.lang.Object
  extended by com.amazonaws.services.sqs.buffered.QueueBufferConfig

public class QueueBufferConfig
extends java.lang.Object


Field Summary
static int LONGPOLL_WAIT_TIMEOUT_SECONDS_DEFAULT
           
static long MAX_BATCH_OPEN_MS_DEFAULT
          200 milliseconds
static long MAX_BATCH_SIZE_BYTES_DEFAULT
          256 kilobytes
static int MAX_BATCH_SIZE_DEFAULT
           
static int MAX_DONE_RECEIVE_BATCHES_DEFAULT
          10 batches
static int MAX_INFLIGHT_OUTBOUND_BATCHES_DEFAULT
          5 batches
static int MAX_INFLIGHT_RECEIVE_BATCHES_DEFAULT
          10 batches
static long SERVICE_MAX_BATCH_SIZE_BYTES
          Updated as the service now supports messages of size max 256 KiB.
static int VISIBILITY_TIMEOUT_SECONDS_DEFAULT
          -1, which means use the visibility timeout of the queue
 
Constructor Summary
QueueBufferConfig()
           
QueueBufferConfig(long maxBatchOpenMs, int maxInflightOutboundBatches, int maxInflightReceiveBatches, int maxDoneReceiveBatches, boolean paramLongPoll, long maxBatchSizeBytes, int visibilityTimeout, int longPollTimeout, int maxBatch)
           
QueueBufferConfig(QueueBufferConfig other)
          copy constructor
 
Method Summary
 int getLongPollWaitTimeoutSeconds()
          Specifies the amount of time, in seconds, the receive call will block on the server waiting for messages to arrive if the queue is empty when the receive call is first made.
 long getMaxBatchOpenMs()
          The maximum time (milliseconds) a send batch is held open for additional outbound requests.
 int getMaxBatchSize()
          Specifies the maximum number of entries the bufferinc client will put in a single batch request.
 long getMaxBatchSizeBytes()
          Maximum permitted size of a SendMessage or SendMessageBatch message, in bytes.
 int getMaxDoneReceiveBatches()
          If more than that number of completed receive batches are waiting in the buffer, the querying for new messages will stop.
The larger this number, the more messages the queue buffer will pre-fetch and keep in the buffer on the client side, and the faster receive requests will be satisfied.
 int getMaxInflightOutboundBatches()
          The maximum number of concurrent batches for each type of outbound request.
 int getMaxInflightReceiveBatches()
          The maximum number of concurrent receive message batches.
 int getVisibilityTimeoutSeconds()
          Custom visibility timeout to use when retrieving messages from SQS.
 boolean isLongPoll()
           
 void setLongPoll(boolean longPoll)
          Specify "true" for receive requests to use long polling.
 void setLongPollWaitTimeoutSeconds(int longPollWaitTimeoutSeconds)
          Specifies the amount of time, in seconds, the receive call will block on the server waiting for messages to arrive if the queue is empty when the receive call is first made.
 void setMaxBatchOpenMs(long maxBatchOpenMs)
          The maximum time (milliseconds) a send batch is held open for additional outbound requests.
 void setMaxBatchSize(int maxBatchSize)
          Specifies the maximum number of entries the bufferinc client will put in a single batch request.
 void setMaxBatchSizeBytes(long maxBatchSizeBytes)
          Maximum permitted size of a SendMessage or SendMessageBatch message, in bytes.
 void setMaxDoneReceiveBatches(int maxDoneReceiveBatches)
          If more than that number of completed receive batches are waiting in the buffer, the querying for new messages will stop.
The larger this number, the more messages the queue buffer will pre-fetch and keep in the buffer on the client side, and the faster receive requests will be satisfied.
 void setMaxInflightOutboundBatches(int maxInflightOutboundBatches)
          The maximum number of concurrent batches for each type of outbound request.
 void setMaxInflightReceiveBatches(int maxInflightReceiveBatches)
          The maximum number of concurrent receive message batches.
 void setVisibilityTimeoutSeconds(int visibilityTimeoutSeconds)
          Custom visibility timeout to use when retrieving messages from SQS.
 java.lang.String toString()
           
 QueueBufferConfig withLongPoll(boolean longPoll)
           
 QueueBufferConfig withLongPollWaitTimeoutSeconds(int longPollWaitTimeoutSeconds)
           
 QueueBufferConfig withMaxBatchOpenMs(long maxBatchOpenMs)
           
 QueueBufferConfig withMaxBatchSize(int maxBatchSize)
          Specifies the maximum number of entries the bufferinc client will put in a single batch request.
 QueueBufferConfig withMaxBatchSizeBytes(long maxBatchSizeBytes)
           
 QueueBufferConfig withMaxDoneReceiveBatches(int maxDoneReceiveBatches)
           
 QueueBufferConfig withMaxInflightOutboundBatches(int maxInflightOutboundBatches)
           
 QueueBufferConfig withMaxInflightReceiveBatches(int maxInflightReceiveBatches)
           
 QueueBufferConfig withVisibilityTimeoutSeconds(int visibilityTimeoutSeconds)
           
 
Methods inherited from class java.lang.Object
equals, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Field Detail

MAX_BATCH_SIZE_DEFAULT

public static final int MAX_BATCH_SIZE_DEFAULT
See Also:
Constant Field Values

SERVICE_MAX_BATCH_SIZE_BYTES

public static final long SERVICE_MAX_BATCH_SIZE_BYTES
Updated as the service now supports messages of size max 256 KiB.

See Also:
Constant Field Values

MAX_BATCH_OPEN_MS_DEFAULT

public static final long MAX_BATCH_OPEN_MS_DEFAULT
200 milliseconds

See Also:
Constant Field Values

MAX_INFLIGHT_OUTBOUND_BATCHES_DEFAULT

public static final int MAX_INFLIGHT_OUTBOUND_BATCHES_DEFAULT
5 batches

See Also:
Constant Field Values

MAX_INFLIGHT_RECEIVE_BATCHES_DEFAULT

public static final int MAX_INFLIGHT_RECEIVE_BATCHES_DEFAULT
10 batches

See Also:
Constant Field Values

MAX_DONE_RECEIVE_BATCHES_DEFAULT

public static final int MAX_DONE_RECEIVE_BATCHES_DEFAULT
10 batches

See Also:
Constant Field Values

MAX_BATCH_SIZE_BYTES_DEFAULT

public static final long MAX_BATCH_SIZE_BYTES_DEFAULT
256 kilobytes

See Also:
Constant Field Values

VISIBILITY_TIMEOUT_SECONDS_DEFAULT

public static final int VISIBILITY_TIMEOUT_SECONDS_DEFAULT
-1, which means use the visibility timeout of the queue

See Also:
Constant Field Values

LONGPOLL_WAIT_TIMEOUT_SECONDS_DEFAULT

public static final int LONGPOLL_WAIT_TIMEOUT_SECONDS_DEFAULT
See Also:
Constant Field Values
Constructor Detail

QueueBufferConfig

public QueueBufferConfig(long maxBatchOpenMs,
                         int maxInflightOutboundBatches,
                         int maxInflightReceiveBatches,
                         int maxDoneReceiveBatches,
                         boolean paramLongPoll,
                         long maxBatchSizeBytes,
                         int visibilityTimeout,
                         int longPollTimeout,
                         int maxBatch)

QueueBufferConfig

public QueueBufferConfig()

QueueBufferConfig

public QueueBufferConfig(QueueBufferConfig other)
copy constructor

Method Detail

toString

public java.lang.String toString()
Overrides:
toString in class java.lang.Object

getMaxBatchOpenMs

public long getMaxBatchOpenMs()
The maximum time (milliseconds) a send batch is held open for additional outbound requests. The longer this timeout, the longer messages wait for other messages to be added to the batch. Increasing this timeout reduces the number of calls made and increases throughput, but also increases average message latency.


setMaxBatchOpenMs

public void setMaxBatchOpenMs(long maxBatchOpenMs)
The maximum time (milliseconds) a send batch is held open for additional outbound requests. The longer this timeout, the longer messages wait for other messages to be added to the batch. Increasing this timeout reduces the number of calls made and increases throughput, but also increases average message latency.


withMaxBatchOpenMs

public QueueBufferConfig withMaxBatchOpenMs(long maxBatchOpenMs)

isLongPoll

public boolean isLongPoll()
Returns:
true if the queue buffer will use long polling while retrieveing messages from the SQS server, false otherwise.

setLongPoll

public void setLongPoll(boolean longPoll)
Specify "true" for receive requests to use long polling.


withLongPoll

public QueueBufferConfig withLongPoll(boolean longPoll)

getMaxInflightOutboundBatches

public int getMaxInflightOutboundBatches()
The maximum number of concurrent batches for each type of outbound request. The greater the number, the greater the throughput that can be achieved (at the expense of consuming more threads).


setMaxInflightOutboundBatches

public void setMaxInflightOutboundBatches(int maxInflightOutboundBatches)
The maximum number of concurrent batches for each type of outbound request. The greater the number, the greater the throughput that can be achieved (at the expense of consuming more threads).


withMaxInflightOutboundBatches

public QueueBufferConfig withMaxInflightOutboundBatches(int maxInflightOutboundBatches)

getMaxInflightReceiveBatches

public int getMaxInflightReceiveBatches()
The maximum number of concurrent receive message batches. The greater this number, the faster the queue will be pulling messages from the SQS servers (at the expense of consuming more threads).


setMaxInflightReceiveBatches

public void setMaxInflightReceiveBatches(int maxInflightReceiveBatches)
The maximum number of concurrent receive message batches. The greater this number, the faster the queue will be pulling messages from the SQS servers (at the expense of consuming more threads).


withMaxInflightReceiveBatches

public QueueBufferConfig withMaxInflightReceiveBatches(int maxInflightReceiveBatches)

getMaxDoneReceiveBatches

public int getMaxDoneReceiveBatches()
If more than that number of completed receive batches are waiting in the buffer, the querying for new messages will stop.
The larger this number, the more messages the queue buffer will pre-fetch and keep in the buffer on the client side, and the faster receive requests will be satisfied.
The visibility timeout of a pre-fetched message starts at the point of pre-fetch, which means that while the message is in the local buffer it is unavailable for other clients to process, and when this client retrieves it, part of the visibility timeout may have already expired.
The number of messages prefetched will not exceed 10 * maxDoneReceiveBatches, as there can be a maximum of 10 messages per batch.


setMaxDoneReceiveBatches

public void setMaxDoneReceiveBatches(int maxDoneReceiveBatches)
If more than that number of completed receive batches are waiting in the buffer, the querying for new messages will stop.
The larger this number, the more messages the queue buffer will pre-fetch and keep in the buffer on the client side, and the faster receive requests will be satisfied.
The visibility timeout of a pre-fetched message starts at the point of pre-fetch, which means that while the message is in the local buffer it is unavailable for other clients to process, and when this client retrieves it, part of the visibility timeout may have already expired.
The number of messages prefetched will not exceed 10 * maxDoneReceiveBatches, as there can be a maximum of 10 messages per batch.


withMaxDoneReceiveBatches

public QueueBufferConfig withMaxDoneReceiveBatches(int maxDoneReceiveBatches)

getMaxBatchSizeBytes

public long getMaxBatchSizeBytes()
Maximum permitted size of a SendMessage or SendMessageBatch message, in bytes. This setting is also enforced on the server, and if this client submits a request of a size larger than the server can support, the server will reject the request.


setMaxBatchSizeBytes

public void setMaxBatchSizeBytes(long maxBatchSizeBytes)
Maximum permitted size of a SendMessage or SendMessageBatch message, in bytes. This setting is also enforced on the server, and if this client submits a request of a size larger than the server can support, the server will reject the request.

Throws:
java.lang.IllegalArgumentException - if the size being set is greater than the service allowed size for message body.

withMaxBatchSizeBytes

public QueueBufferConfig withMaxBatchSizeBytes(long maxBatchSizeBytes)

getVisibilityTimeoutSeconds

public int getVisibilityTimeoutSeconds()
Custom visibility timeout to use when retrieving messages from SQS. If set to a value greater than zero, this timeout will override the default visibility timeout set on the SQS queue. Set it to -1 to use the default visiblity timeout of the queue. Visibility timeout of 0 seconds is not supported.


setVisibilityTimeoutSeconds

public void setVisibilityTimeoutSeconds(int visibilityTimeoutSeconds)
Custom visibility timeout to use when retrieving messages from SQS. If set to a value greater than zero, this timeout will override the default visibility timeout set on the SQS queue. Set it to -1 to use the default visiblity timeout of the queue. Visibility timeout of 0 seconds is not supported.


withVisibilityTimeoutSeconds

public QueueBufferConfig withVisibilityTimeoutSeconds(int visibilityTimeoutSeconds)

setLongPollWaitTimeoutSeconds

public void setLongPollWaitTimeoutSeconds(int longPollWaitTimeoutSeconds)
Specifies the amount of time, in seconds, the receive call will block on the server waiting for messages to arrive if the queue is empty when the receive call is first made. This setting has no effect if long polling is disabled.


getLongPollWaitTimeoutSeconds

public int getLongPollWaitTimeoutSeconds()
Specifies the amount of time, in seconds, the receive call will block on the server waiting for messages to arrive if the queue is empty when the receive call is first made. This setting has no effect if long polling is disabled.


withLongPollWaitTimeoutSeconds

public QueueBufferConfig withLongPollWaitTimeoutSeconds(int longPollWaitTimeoutSeconds)

getMaxBatchSize

public int getMaxBatchSize()
Specifies the maximum number of entries the bufferinc client will put in a single batch request.


setMaxBatchSize

public void setMaxBatchSize(int maxBatchSize)
Specifies the maximum number of entries the bufferinc client will put in a single batch request.


withMaxBatchSize

public QueueBufferConfig withMaxBatchSize(int maxBatchSize)
Specifies the maximum number of entries the bufferinc client will put in a single batch request.



Copyright © 2010 Amazon Web Services, Inc. All Rights Reserved.