All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.netflix.astyanax.recipes.queue.MessageQueueMetadata Maven / Gradle / Ivy

There is a newer version: 3.10.2
Show newest version
/**
 * Copyright 2013 Netflix, Inc.
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
package com.netflix.astyanax.recipes.queue;

import java.util.concurrent.TimeUnit;

/**
 * MessageQueueSettings settings that are persisted to cassandra
 */
public class MessageQueueMetadata  {
    public static final String        DEFAULT_QUEUE_NAME        = "Queue";
    public static final Integer       DEFAULT_RETENTION_TIMEOUT = null;
    public static final int           DEFAULT_SHARD_COUNT       = 1;
    public static final Long          DEFAULT_BUCKET_DURATION   = null; 
    public static final int           DEFAULT_BUCKET_COUNT      = 1;
    public static final Integer       DEFAULT_HISTORY_TTL       = null;
    
    @Deprecated
    public static final long          DEFAULT_POLL_WAIT         = TimeUnit.MILLISECONDS.convert(100, TimeUnit.MILLISECONDS);
    
    private Long      partitionDuration = DEFAULT_BUCKET_DURATION;
    private int       partitionCount    = DEFAULT_BUCKET_COUNT;
    private Integer   retentionTimeout  = DEFAULT_RETENTION_TIMEOUT;
    private int       shardCount        = DEFAULT_SHARD_COUNT;
    private Integer   historyTtl        = DEFAULT_HISTORY_TTL;
    private String    queueName         = DEFAULT_QUEUE_NAME;
    
    @Deprecated
    private long      pollInterval      = DEFAULT_POLL_WAIT;
    
    public Long getPartitionDuration() {
        return partitionDuration;
    }
    public int getPartitionCount() {
        return partitionCount;
    }
    public Integer getRetentionTimeout() {
        return retentionTimeout;
    }
    public int getShardCount() {
        return shardCount;
    }
    public void setPartitionDuration(long partitionDuration) {
        this.partitionDuration = partitionDuration;
    }
    public void setPartitionCount(int partitionCount) {
        this.partitionCount = partitionCount;
    }
    public void setRetentionTimeout(Integer retentionTimeout) {
        this.retentionTimeout = retentionTimeout;
    }
    public void setRetentionTimeout(Long retentionTimeout, TimeUnit units) {
        this.retentionTimeout = (int)TimeUnit.SECONDS.convert(retentionTimeout, units);
    }
    public void setShardCount(int shardCount) {
        this.shardCount = shardCount;
    }
    public Integer getHistoryTtl() {
        return historyTtl;
    }
    public void setHistoryTtl(Integer historyTtl) {
        this.historyTtl = historyTtl;
    }
    public String getQueueName() {
        return queueName;
    }
    public void setQueueName(String queueName) {
        this.queueName = queueName;
    }
    
    /**
     * Define this on the ShardReaderPolicy
     * @return
     */
    @Deprecated
    public long getPollInterval() {
        return pollInterval;
    }
    /**
     * Define this on the ShardReaderPolicy
     * @return
     */
    @Deprecated
    public void setPollInterval(long pollInterval) {
        this.pollInterval = pollInterval;
    }
    
    @Override
    public String toString() {
        return "MessageQueueSettings [partitionDuration=" + partitionDuration + ", partitionCount=" + partitionCount
                + ", retentionTimeout=" + retentionTimeout + ", shardCount=" + shardCount + ", historyTtl=" + historyTtl
                + ", queueName=" + queueName + ", pollInterval=" + pollInterval + "]";
    }
}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy