當前位置: 首頁>>代碼示例>>Java>>正文


Java PooledObject類代碼示例

本文整理匯總了Java中org.apache.commons.pool2.PooledObject的典型用法代碼示例。如果您正苦於以下問題:Java PooledObject類的具體用法?Java PooledObject怎麽用?Java PooledObject使用的例子?那麽, 這裏精選的類代碼示例或許可以為您提供幫助。


PooledObject類屬於org.apache.commons.pool2包,在下文中一共展示了PooledObject類的15個代碼示例,這些例子默認根據受歡迎程度排序。您可以為喜歡或者感覺有用的代碼點讚,您的評價將有助於係統推薦出更棒的Java代碼示例。

示例1: makeObject

import org.apache.commons.pool2.PooledObject; //導入依賴的package包/類
public PooledObject<Socket> makeObject() throws Exception {
	// 簡單策略隨機取服務器,沒有考慮權重
	List<ServerAddress> temps = new ArrayList<ServerAddress>();
	temps.addAll(serverGroup.getServers());

	for (int i = temps.size() - 1; i >= 0; i--) {
		int index = new Random(System.currentTimeMillis()).nextInt(temps.size());
		ServerAddress server = temps.get(index);
		try {
			PooledObject<Socket> po = new DefaultPooledObject<Socket>(
					new Socket(server.getIp(), server.getPort()));
			if (logger.isDebugEnabled()) {
				logger.debug("tcpPool makeObject[" + server.getIp() + ":" + server.getPort() + "] success!");
			}
			return po;
		} catch (Exception e) {
			temps.remove(i);
			logger.error("tcpPool makeObject[" + server.getIp() + ":" + server.getPort() + "] failed! "
					+ e.getMessage());
		}
	}
	// 沒有可用服務器時,請求一下registry更新服務器信息
	this.updateServerGroup();
	throw new Exception("No server available!");
}
 
開發者ID:sylinklee,項目名稱:netto_rpc,代碼行數:26,代碼來源:TcpConnectPool.java

示例2: makeObject

import org.apache.commons.pool2.PooledObject; //導入依賴的package包/類
@Override
public PooledObject<Jedis> makeObject() throws Exception {
  final HostAndPort hostAndPort = this.hostAndPort.get();
  final Jedis jedis = new Jedis(hostAndPort.getHost(), hostAndPort.getPort(), connectionTimeout,
      soTimeout);

  jedis.connect();
  if (null != this.password) {
    jedis.auth(this.password);
  }
  if (database != 0) {
    jedis.select(database);
  }
  if (clientName != null) {
    jedis.clientSetname(clientName);
  }

  return new DefaultPooledObject<Jedis>(jedis);
}
 
開發者ID:x7-framework,項目名稱:x7,代碼行數:20,代碼來源:JedisFactory.java

示例3: validateObject

import org.apache.commons.pool2.PooledObject; //導入依賴的package包/類
@Override
public boolean validateObject(PooledObject<Jedis> pooledJedis) {
  final BinaryJedis jedis = pooledJedis.getObject();
  try {
    HostAndPort hostAndPort = this.hostAndPort.get();

    String connectionHost = jedis.getClient().getHost();
    int connectionPort = jedis.getClient().getPort();

    return hostAndPort.getHost().equals(connectionHost)
        && hostAndPort.getPort() == connectionPort && jedis.isConnected()
        && jedis.ping().equals("PONG");
  } catch (final Exception e) {
    return false;
  }
}
 
開發者ID:x7-framework,項目名稱:x7,代碼行數:17,代碼來源:JedisFactory.java

示例4: passivateObject

import org.apache.commons.pool2.PooledObject; //導入依賴的package包/類
@Override
public void passivateObject(Event.Type key, PooledObject<Event> pooledObject) throws Exception {
    final Event event = pooledObject.getObject();
    switch (event.type) {
        case BEFORE:
            unsafe.putObject(event, targetFieldInBeforeEventOffset, null);
            unsafe.putObject(event, argumentArrayFieldInBeforeEventOffset, null);
            break;
        case IMMEDIATELY_THROWS:
        case THROWS:
            unsafe.putObject(event, throwableFieldInThrowsEventOffset, null);
            break;
        case IMMEDIATELY_RETURN:
        case RETURN:
            unsafe.putObject(event, objectFieldInReturnEventOffset, null);
    }
}
 
開發者ID:alibaba,項目名稱:jvm-sandbox,代碼行數:18,代碼來源:EventPool.java

示例5: validateObject

import org.apache.commons.pool2.PooledObject; //導入依賴的package包/類
@Override
public boolean validateObject(ThriftServer thriftServer, PooledObject<TTransport> pooledObject) {
	boolean isValidate;
	try {
		if (failoverChecker == null) {
			isValidate = pooledObject.getObject().isOpen();
		} else {
			ConnectionValidator validator = failoverChecker.getConnectionValidator();
			isValidate = pooledObject.getObject().isOpen() && (validator == null || validator.isValid(pooledObject.getObject()));
		}
	} catch (Throwable e) {
		logger.warn("Fail to validate tsocket: {}:{}", new Object[]{thriftServer.getHost(), thriftServer.getPort(), e});
		isValidate = false;
	}
	if (failoverChecker != null && !isValidate) {
		failoverChecker.getFailoverStrategy().fail(thriftServer);
	}
	logger.info("ValidateObject isValidate:{}", isValidate);
	
	return isValidate;
}
 
開發者ID:cyfonly,項目名稱:ThriftJ,代碼行數:22,代碼來源:ThriftConnectionFactory.java

示例6: setupObjectPool

import org.apache.commons.pool2.PooledObject; //導入依賴的package包/類
@Override
public void setupObjectPool() {
    GenericObjectPoolConfig config = new GenericObjectPoolConfig();
    config.setMaxTotal(poolSize);

    objectPool = new GenericObjectPool<>(new BasePooledObjectFactory<TestObject>() {
        @Override
        public TestObject create() throws Exception {
            return new TestObject(true);
        }

        @Override
        public PooledObject<TestObject> wrap(TestObject testObject) {
            return new DefaultPooledObject<>(testObject);
        }
    }, config);
}
 
開發者ID:chrishantha,項目名稱:microbenchmarks,代碼行數:18,代碼來源:CommonsPool2GenericObjectPoolBenchmark.java

示例7: getPool

import org.apache.commons.pool2.PooledObject; //導入依賴的package包/類
private synchronized GenericKeyedObjectPool<String, Script> getPool() {
    if (pool == null) {
        GenericKeyedObjectPoolConfig poolConfig = new GenericKeyedObjectPoolConfig();
        poolConfig.setMaxTotalPerKey(-1);
        poolConfig.setMaxIdlePerKey(globalConfig.getGroovyEvaluationPoolMaxIdle());
        pool = new GenericKeyedObjectPool<>(
                new BaseKeyedPooledObjectFactory<String, Script>() {
                    @Override
                    public Script create(String key) throws Exception {
                        return createScript(key);
                    }

                    @Override
                    public PooledObject<Script> wrap(Script value) {
                        return new DefaultPooledObject<>(value);
                    }
                },
                poolConfig
        );
    }
    return pool;
}
 
開發者ID:cuba-platform,項目名稱:cuba,代碼行數:23,代碼來源:AbstractScripting.java

示例8: makeObject

import org.apache.commons.pool2.PooledObject; //導入依賴的package包/類
@Override
public PooledObject<Jedis> makeObject() throws Exception {
	final Jedis jedis = new Jedis(this.host, this.port, this.timeout);

	jedis.connect();
	if (null != this.password) {
		jedis.auth(this.password);
	}
	if (database != 0) {
		jedis.select(database);
	}
	if (clientName != null) {
		jedis.clientSetname(clientName);
	}

	return new DefaultPooledObject<Jedis>(jedis);
}
 
開發者ID:pengqiuyuan,項目名稱:g2,代碼行數:18,代碼來源:JedisFactory.java

示例9: makeObject

import org.apache.commons.pool2.PooledObject; //導入依賴的package包/類
@SuppressWarnings("unchecked")
@Override
public PooledObject makeObject() throws Exception {
    //logger.debug("makeObject...........");
    try {
        String host = this.host;
        int port = this.port;
        int timeout = this.timeout;
        TFramedTransport transport = new TFramedTransport(new TSocket(host, port, timeout));
        TBinaryProtocol protocol = new TBinaryProtocol(transport);
        FrcService.Client client = new FrcService.Client(protocol, protocol);
        transport.open();
        RpcClient<Client> rpcClient = new RpcClient(client, transport, 1);
        return this.wrap(rpcClient);
    } catch (Exception e) {
        logger.error("exception", e);
        return null;
    }

}
 
開發者ID:songbin,項目名稱:frc,代碼行數:21,代碼來源:FrcFactory.java

示例10: makeObject

import org.apache.commons.pool2.PooledObject; //導入依賴的package包/類
@Override
public PooledObject<Jedis> makeObject() throws Exception {
	final HostAndPort hostAndPort = this.hostAndPort.get();
	final Jedis jedis = new Jedis(hostAndPort.getHost(), hostAndPort.getPort(), connectionTimeout);

	jedis.connect();
	if (null != this.password) {
		jedis.auth(this.password);
	}
	if (database != 0) {
		jedis.select(database);
	}
	if (clientName != null) {
		jedis.clientSetname(clientName);
	}

	return new DefaultPooledObject<Jedis>(jedis);
}
 
開發者ID:nince-wyj,項目名稱:jahhan,代碼行數:19,代碼來源:JedisFactory.java

示例11: main

import org.apache.commons.pool2.PooledObject; //導入依賴的package包/類
public static void main(String[] args) {
	log("PCFMessageAgent Test");
	final Properties p = new Properties();
	p.setProperty(HOST_KEY, "localhost");
	p.setProperty(PORT_KEY, "1430");
	p.setProperty(CHANNEL_KEY, "JBOSS.SVRCONN");
	MQPCFPoolBuilder poolBuilder = new MQPCFPoolBuilder(p);
	log("Created");
	log("PCF_CTOR: [" + PCF_CTOR + "]");
	Object o = null;
	PooledObject<Object> pooledObject = null;
	try {
		o = poolBuilder.create();
		log("Created Object: [" + o + "]");
		pooledObject = new DefaultPooledObject<Object>(o);
		log("Validating Object....");
		poolBuilder.validateObject(pooledObject);
		//SystemClock.sleep(100000);
		
	} finally {
		if(pooledObject!=null) try { poolBuilder.destroyObject(pooledObject); } catch (Exception x) {}
	}
	
	
}
 
開發者ID:nickman,項目名稱:HeliosStreams,代碼行數:26,代碼來源:MQPCFPoolBuilder.java

示例12: makeObject

import org.apache.commons.pool2.PooledObject; //導入依賴的package包/類
@Override
public PooledObject<Jedis> makeObject() throws Exception {
    final HostAndPort hostAndPort = this.hostAndPort.get();
    JaRedis.Builder builder = new JaRedis.Builder();
    builder
            .host(hostAndPort.getHost())
            .port(hostAndPort.getPort())
            .connectionTimeout(connectionTimeout)
            .soTimeout(soTimeout);
    Jedis jedis = builder.build();
    try {
        jedis.connect();
        if (null != this.password) {
            jedis.auth(this.password);
        }
        if (database != 0) {
            jedis.select(database);
        }
        if (clientName != null) {
            jedis.clientSetname(clientName);
        }
    } catch (JedisException je) {
        jedis.close();
        throw je;
    }
    return new DefaultPooledObject<>(jedis);
}
 
開發者ID:YanXs,項目名稱:nighthawk,代碼行數:28,代碼來源:JaRedisFactory.java

示例13: validateObject

import org.apache.commons.pool2.PooledObject; //導入依賴的package包/類
@Override
public boolean validateObject(PooledObject<Jedis> pooledJedis) {
    final BinaryJedis jedis = pooledJedis.getObject();
    try {
        HostAndPort hostAndPort = this.hostAndPort.get();
        String connectionHost = jedis.getClient().getHost();
        int connectionPort = jedis.getClient().getPort();

        return hostAndPort.getHost().equals(connectionHost)
                && hostAndPort.getPort() == connectionPort && jedis.isConnected()
                && jedis.ping().equals("PONG");
    } catch (final Exception e) {
        return false;
    }
}
 
開發者ID:YanXs,項目名稱:nighthawk,代碼行數:16,代碼來源:JaRedisFactory.java

示例14: activateObject

import org.apache.commons.pool2.PooledObject; //導入依賴的package包/類
@Override
public void activateObject(PooledObject<Jedis> pooledJedis) throws Exception {
    final BinaryJedis jedis = pooledJedis.getObject();
    if (jedis.getDB() != database) {
        jedis.select(database);
    }
}
 
開發者ID:YanXs,項目名稱:nighthawk,代碼行數:8,代碼來源:JaRedisFactory.java

示例15: activateObject

import org.apache.commons.pool2.PooledObject; //導入依賴的package包/類
@Override
public void activateObject(PooledObject<Jedis> pooledJedis) throws Exception {
	final BinaryJedis jedis = pooledJedis.getObject();
	if (jedis.getDB() != database) {
		jedis.select(database);
	}

}
 
開發者ID:qq1588518,項目名稱:JRediClients,代碼行數:9,代碼來源:JedisFactory.java


注:本文中的org.apache.commons.pool2.PooledObject類示例由純淨天空整理自Github/MSDocs等開源代碼及文檔管理平台,相關代碼片段篩選自各路編程大神貢獻的開源項目,源碼版權歸原作者所有,傳播和使用請參考對應項目的License;未經允許,請勿轉載。