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

com.navercorp.redis.cluster.RedisClusterPoolConfig Maven / Gradle / Ivy

The newest version!
/*
 * Copyright 2015 NAVER Corp.
 *
 * 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.navercorp.redis.cluster;

import org.apache.commons.pool2.impl.GenericObjectPoolConfig;

/**
 * Subclass of org.apache.commons.pool.impl.GenericObjectPool.Config that
 * includes getters/setters so it can be more easily configured by Spring and
 * other IoC frameworks.
 * 
*
* Spring example:
*
* <bean id="redisClusterPoolConfig" class="RedisClusterPoolConfig"> <property * name="testWhileIdle" value="true"/> </bean> *
*
 *  maxActive is 8
 *  testWhileIdle is true
 *  minEvictableIdleTimeMillis is 60000
 *  timeBetweenEvictionRunsMillis is 30000
 *  numTestsPerEvictionRun is -1
 *  ...
 *  
* * For information on parameters refer to: * * http://commons.apache.org/pool/apidocs/org/apache/commons/pool/impl/ * GenericObjectPool.html * * @author jaehong.kim */ public class RedisClusterPoolConfig extends GenericObjectPoolConfig { public static final int DEFAULT_INITIAL_SIZE = 8; public static final int DEFAULT_MAX_ACTIVE = DEFAULT_INITIAL_SIZE; public static final int DEFAULT_MAX_IDLE = DEFAULT_MAX_ACTIVE; public static final int DEFAULT_MIN_IDLE = 0; public static final int DEFAULT_MAX_WAIT_MILLIS = 1000; public static final int DEFAULT_NUM_TEST_PER_EVICTION_RUN = 2; public static final long DEFAULT_TIME_BETWEEN_EVICTION_RUNS_MILLIS = 5L * 60L * 1000L; // 5 minutes /** * The initial number of connections that are created when the pool * is started */ private int initialSize = DEFAULT_INITIAL_SIZE; public RedisClusterPoolConfig() { // RedisClusterPool defaults setting different with GenericObjectPool.Config setMaxWaitMillis(DEFAULT_MAX_WAIT_MILLIS); setMaxTotal(DEFAULT_MAX_ACTIVE); setMaxIdle(DEFAULT_MAX_IDLE); setMinIdle(DEFAULT_MIN_IDLE); setTestWhileIdle(true); setLifo(false); setMinEvictableIdleTimeMillis(-1); setTimeBetweenEvictionRunsMillis(DEFAULT_TIME_BETWEEN_EVICTION_RUNS_MILLIS); setNumTestsPerEvictionRun(DEFAULT_NUM_TEST_PER_EVICTION_RUN); } public void setMaxWait(long maxWaitMillis) { setMaxWaitMillis(maxWaitMillis); } public long getMaxWait() { return getMaxWaitMillis(); } public int getInitialSize() { return initialSize; } public void setInitialSize(int initialSize) { this.initialSize = initialSize; } public int getMaxActive() { return getMaxTotal(); } public void setMaxActive(int maxActive) { setMaxTotal(maxActive); } @Override public String toString() { StringBuilder builder = new StringBuilder(); builder.append("{"); builder.append("initialSize=").append(initialSize).append(", "); builder.append("maxIdle=").append(getMaxIdle()).append(", "); builder.append("minIdle=").append(getMinIdle()).append(", "); builder.append("maxActive=").append(getMaxActive()).append(", "); builder.append("maxWait=").append(getMaxWait()).append(", "); builder.append("whenExhaustedAction=").append(getBlockWhenExhausted()).append(", "); builder.append("testOnBorrow=").append(getTestOnBorrow()).append(", "); builder.append("testOnReturn=").append(getTestOnReturn()).append(", "); builder.append("testWhileIdle=").append(getTestWhileIdle()).append(", "); builder.append("timeBetweenEvictionRunsMillis=").append(getTimeBetweenEvictionRunsMillis()).append(", "); builder.append("numTestsPerEvictionRun=").append(getNumTestsPerEvictionRun()).append(", "); builder.append("minEvictableIdleTimeMillis=").append(getMinEvictableIdleTimeMillis()).append(", "); builder.append("softMinEvictableIdleTimeMillis=").append(getSoftMinEvictableIdleTimeMillis()); builder.append("}"); return builder.toString(); } }




© 2015 - 2024 Weber Informatics LLC | Privacy Policy