【发布时间】:2018-11-23 07:38:24
【问题描述】:
我通过使用BasePooledObjectFactory 扩展GenericObjectPool 和poolFactory 创建了GenericPool。现在我想从我的通用池中删除该对象。
.clear() 将从池中删除 idleObject 我们如何从池中永久删除?
【问题讨论】:
标签: threadpool apache-commons pool object-pooling
我通过使用BasePooledObjectFactory 扩展GenericObjectPool 和poolFactory 创建了GenericPool。现在我想从我的通用池中删除该对象。
.clear() 将从池中删除 idleObject 我们如何从池中永久删除?
【问题讨论】:
标签: threadpool apache-commons pool object-pooling
您的 poolFactory 必须实现该方法
void destroyObject(PooledObject<T> p) throws Exception;
虽然你的代码应该调用方法
public void invalidateObject(final T obj) throws Exception
在通用池上
在运行时,如果遇到异常情况(可能是临时网络问题引起的),您需要从池中移除对象并重新创建它,因此调用 invalidateObject 将销毁该对象并在以下情况下自动创建新对象你打电话给borrowObject
【讨论】: