Class BatchReceivePolicy

  • All Implemented Interfaces:
    java.io.Serializable

    @Public
    @Stable
    public class BatchReceivePolicy
    extends java.lang.Object
    implements java.io.Serializable
    Configuration for message batch receive Consumer.batchReceive() Consumer.batchReceiveAsync().

    Batch receive policy can limit the number and bytes of messages in a single batch, and can specify a timeout for waiting for enough messages for this batch.

    This batch receive will be completed as long as any one of the conditions(has enough number of messages, has enough of size of messages, wait timeout) is met.

    Examples: 1.If set maxNumMessages = 10, maxSizeOfMessages = 1MB and without timeout, it means Consumer.batchReceive() will always wait until there is enough messages. 2.If set maxNumberOfMessages = 0, maxNumBytes = 0 and timeout = 100ms, it means Consumer.batchReceive() will waiting for 100ms whether or not there is enough messages.

    Note: Must specify messages limitation(maxNumMessages, maxNumBytes) or wait timeout. Otherwise, Messages ingest Message will never end.

    Since:
    2.4.1
    See Also:
    Serialized Form
    • Field Detail

      • DEFAULT_POLICY

        public static final BatchReceivePolicy DEFAULT_POLICY
        Default batch receive policy.

        Max number of messages: no limit Max number of bytes: 10MB Timeout: 100ms

    • Method Detail

      • verify

        public void verify()
      • getTimeoutMs

        public long getTimeoutMs()
      • getMaxNumMessages

        public int getMaxNumMessages()
      • getMaxNumBytes

        public int getMaxNumBytes()
      • toString

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