Class QueueConfig

java.lang.Object
com.hazelcast.config.QueueConfig
All Implemented Interfaces:
NamedConfig, UserCodeNamespaceAwareConfig<QueueConfig>, DataSerializable, IdentifiedDataSerializable, com.hazelcast.nio.serialization.impl.Versioned

public class QueueConfig extends Object implements IdentifiedDataSerializable, NamedConfig, com.hazelcast.nio.serialization.impl.Versioned, UserCodeNamespaceAwareConfig<QueueConfig>
Contains the configuration for an IQueue.
  • Field Details

    • DEFAULT_MAX_SIZE

      public static final int DEFAULT_MAX_SIZE
      Default value for the maximum size of the Queue.
      See Also:
    • DEFAULT_SYNC_BACKUP_COUNT

      public static final int DEFAULT_SYNC_BACKUP_COUNT
      Default value for the synchronous backup count.
      See Also:
    • DEFAULT_ASYNC_BACKUP_COUNT

      public static final int DEFAULT_ASYNC_BACKUP_COUNT
      Default value of the asynchronous backup count.
      See Also:
    • DEFAULT_EMPTY_QUEUE_TTL

      public static final int DEFAULT_EMPTY_QUEUE_TTL
      Default value for the TTL (time to live) for empty Queue.
      See Also:
  • Constructor Details

    • QueueConfig

      public QueueConfig()
    • QueueConfig

      public QueueConfig(String name)
    • QueueConfig

      public QueueConfig(QueueConfig config)
  • Method Details

    • getEmptyQueueTtl

      public int getEmptyQueueTtl()
      Returns the TTL (time to live) for emptying the Queue.
      Returns:
      the TTL (time to live) for emptying the Queue
    • setEmptyQueueTtl

      public QueueConfig setEmptyQueueTtl(int emptyQueueTtl)
      Sets the TTL (time to live) for emptying the Queue.
      Parameters:
      emptyQueueTtl - set the TTL (time to live) for emptying the Queue to this value
      Returns:
      the Queue configuration
    • getMaxSize

      public int getMaxSize()
      Returns the maximum size of the Queue.
      Returns:
      the maximum size of the Queue
    • setMaxSize

      public QueueConfig setMaxSize(int maxSize)
      Sets the maximum size of the Queue.
      Parameters:
      maxSize - set the maximum size of the Queue to this value
      Returns:
      the Queue configuration
      Throws:
      IllegalArgumentException - if the provided max size is negative
    • getTotalBackupCount

      public int getTotalBackupCount()
      Get the total number of backups: the backup count plus the asynchronous backup count.
      Returns:
      the total number of backups
    • getBackupCount

      public int getBackupCount()
      Get the number of synchronous backups for this queue.
      Returns:
      the synchronous backup count
    • setBackupCount

      public QueueConfig setBackupCount(int backupCount)
      Sets the number of synchronous backups for this queue.
      Parameters:
      backupCount - the number of synchronous backups to set
      Returns:
      the current QueueConfig
      Throws:
      IllegalArgumentException - if backupCount is smaller than 0, or larger than the maximum number of backups, or the sum of the backups and async backups is larger than the maximum number of backups
      See Also:
    • getAsyncBackupCount

      public int getAsyncBackupCount()
      Get the number of asynchronous backups for this queue.
      Returns:
      the number of asynchronous backups
    • setAsyncBackupCount

      public QueueConfig setAsyncBackupCount(int asyncBackupCount)
      Sets the number of asynchronous backups. 0 means no backups.
      Parameters:
      asyncBackupCount - the number of asynchronous synchronous backups to set
      Returns:
      the updated QueueConfig
      Throws:
      IllegalArgumentException - if asyncBackupCount smaller than 0, or larger than the maximum number of backup or the sum of the backups and async backups is larger than the maximum number of backups
      See Also:
    • getQueueStoreConfig

      @Nullable public QueueStoreConfig getQueueStoreConfig()
      Get the QueueStore (load and store queue items from/to a database) configuration.
      Returns:
      the QueueStore configuration
    • setQueueStoreConfig

      public QueueConfig setQueueStoreConfig(@Nullable QueueStoreConfig queueStoreConfig)
      Set the QueueStore (load and store queue items from/to a database) configuration.
      Parameters:
      queueStoreConfig - set the QueueStore configuration to this configuration
      Returns:
      the QueueStore configuration
    • isStatisticsEnabled

      public boolean isStatisticsEnabled()
      Check if statistics are enabled for this queue.
      Returns:
      true if statistics are enabled, false otherwise
    • setStatisticsEnabled

      public QueueConfig setStatisticsEnabled(boolean statisticsEnabled)
      Enables or disables statistics for this queue.
      Parameters:
      statisticsEnabled - true to enable statistics for this queue, false to disable
      Returns:
      the updated QueueConfig
    • getName

      public String getName()
      Specified by:
      getName in interface NamedConfig
      Returns:
      the name of this queue
    • setName

      public QueueConfig setName(String name)
      Set the name for this queue.
      Specified by:
      setName in interface NamedConfig
      Parameters:
      name - the name to set for this queue
      Returns:
      this queue configuration
    • addItemListenerConfig

      public QueueConfig addItemListenerConfig(ItemListenerConfig listenerConfig)
      Add an item listener configuration to this queue.
      Parameters:
      listenerConfig - the item listener configuration to add to this queue
      Returns:
      the updated queue configuration
    • getItemListenerConfigs

      @Nonnull public List<ItemListenerConfig> getItemListenerConfigs()
      Get the list of item listener configurations for this queue.
      Returns:
      the list of item listener configurations for this queue
    • setItemListenerConfigs

      public QueueConfig setItemListenerConfigs(@Nullable List<ItemListenerConfig> listenerConfigs)
      Set the list of item listener configurations for this queue.
      Parameters:
      listenerConfigs - the list of item listener configurations to set for this queue
      Returns:
      the updated queue configuration
    • getSplitBrainProtectionName

      @Nullable public String getSplitBrainProtectionName()
      Returns the split brain protection name for queue operations.
      Returns:
      the split brain protection name
    • setSplitBrainProtectionName

      public QueueConfig setSplitBrainProtectionName(@Nullable String splitBrainProtectionName)
      Sets the split brain protection name for queue operations.
      Parameters:
      splitBrainProtectionName - the split brain protection name
      Returns:
      the updated queue configuration
    • getMergePolicyConfig

      @Nonnull public MergePolicyConfig getMergePolicyConfig()
      Gets the MergePolicyConfig for this queue.
      Returns:
      the MergePolicyConfig for this queue
    • setMergePolicyConfig

      public QueueConfig setMergePolicyConfig(@Nonnull MergePolicyConfig mergePolicyConfig)
      Sets the MergePolicyConfig for this queue.
      Returns:
      the updated queue configuration
    • isPriorityQueue

      public boolean isPriorityQueue()
      Check if underlying implementation is a PriorityQueue. Otherwise it is a FIFO queue.
      Returns:
      true if priority queue has been configured, false otherwise
    • getPriorityComparatorClassName

      @Nullable public String getPriorityComparatorClassName()
      Returns the class name that will be used to compare queue items. If the returned class name is non-empty, the queue will behave as a priority queue, otherwise it behaves as a FIFO queue.

      If this value is non-null, then Hazelcast will ignore the queue store QueueStoreConfig.STORE_MEMORY_LIMIT configuration value.

    • setPriorityComparatorClassName

      public QueueConfig setPriorityComparatorClassName(@Nullable String priorityComparatorClassName)
      Sets the class name that will be used to compare queue items. If the provided class name is non-empty, the queue will behave as a priority queue, otherwise it behaves as a FIFO queue. Setting the comparator to a non-null value also makes the queue store ignore the QueueStoreConfig.STORE_MEMORY_LIMIT configuration value.
      Parameters:
      priorityComparatorClassName - the class name that will be used to compare queue items
      Returns:
      this QueueConfig instance
    • getUserCodeNamespace

      @Nullable public String getUserCodeNamespace()
      Retrieve the User Code Deployment Namespace to be used for ClassLoader awareness during operations related to the structure associated with this configuration.
      Specified by:
      getUserCodeNamespace in interface UserCodeNamespaceAwareConfig<QueueConfig>
      Returns:
      Namespace Name for use with the UserCodeNamespaceService, or null if there is no User Code Namespace to associate with.
    • setUserCodeNamespace

      public QueueConfig setUserCodeNamespace(@Nullable String userCodeNamespace)
      Associates the provided Namespace Name with this structure for ClassLoader awareness.

      The behaviour of setting this to null is outlined in the documentation for UserCodeNamespaceAwareConfig.DEFAULT_NAMESPACE.

      Specified by:
      setUserCodeNamespace in interface UserCodeNamespaceAwareConfig<QueueConfig>
      Parameters:
      userCodeNamespace - The ID of the Namespace to associate with this structure.
      Returns:
      the updated QueueConfig instance
      Since:
      5.4
    • toString

      public String toString()
      Overrides:
      toString in class Object
    • getFactoryId

      public int getFactoryId()
      Description copied from interface: IdentifiedDataSerializable
      Returns DataSerializableFactory factory ID for this class.
      Specified by:
      getFactoryId in interface IdentifiedDataSerializable
      Returns:
      factory ID
    • getClassId

      public int getClassId()
      Description copied from interface: IdentifiedDataSerializable
      Returns type identifier for this class. It should be unique per DataSerializableFactory.
      Specified by:
      getClassId in interface IdentifiedDataSerializable
      Returns:
      type ID
    • writeData

      public void writeData(ObjectDataOutput out) throws IOException
      Description copied from interface: DataSerializable
      Writes object fields to output stream
      Specified by:
      writeData in interface DataSerializable
      Parameters:
      out - output
      Throws:
      IOException - if an I/O error occurs. In particular, an IOException may be thrown if the output stream has been closed.
    • readData

      public void readData(ObjectDataInput in) throws IOException
      Description copied from interface: DataSerializable
      Reads fields from the input stream
      Specified by:
      readData in interface DataSerializable
      Parameters:
      in - input
      Throws:
      IOException - if an I/O error occurs. In particular, an IOException may be thrown if the input stream has been closed.
    • equals

      public final boolean equals(Object o)
      Overrides:
      equals in class Object
    • hashCode

      public final int hashCode()
      Overrides:
      hashCode in class Object