Class PooledObjectTracker<T>
java.lang.Object
cloud.opencode.base.pool.tracker.PooledObjectTracker<T>
- Type Parameters:
T- the type of object being tracked - 追踪的对象类型
PooledObjectTracker - Pooled Object Tracker
PooledObjectTracker - 池化对象追踪器
Tracks borrowed objects to detect leaks and abandoned objects. Useful for debugging and monitoring pool usage.
追踪借用的对象以检测泄漏和废弃对象。用于调试和监控池使用。
Features | 主要功能:
- Track borrow/return operations - 追踪借用/归还操作
- Detect abandoned objects - 检测废弃对象
- Stack trace capture for debugging - 捕获调用栈用于调试
- Automatic cleanup of abandoned objects - 自动清理废弃对象
Usage Examples | 使用示例:
PooledObjectTracker<Connection> tracker = new PooledObjectTracker<>(
Duration.ofMinutes(5),
true,
abandoned -> {
logger.warn("Abandoned connection detected: " + abandoned);
});
// Track borrow
tracker.trackBorrow(pooledObject);
// Track return
tracker.trackReturn(pooledObject);
// Check for abandoned
List<TrackedObject<Connection>> abandoned = tracker.getAbandonedObjects();
Security | 安全性:
- Thread-safe: Yes - 线程安全: 是
- Since:
- JDK 25, opencode-base-pool V1.0.0
- Author:
- Leon Soo www.LeonSoo.com
- See Also:
-
Nested Class Summary
Nested ClassesModifier and TypeClassDescriptionstatic final recordTracked object information. -
Constructor Summary
ConstructorsConstructorDescriptionCreates a tracker with default settings.PooledObjectTracker(Duration abandonedTimeout, boolean captureStackTrace, Consumer<PooledObjectTracker.TrackedObject<T>> abandonedCallback) Creates a tracker with custom settings. -
Method Summary
Modifier and TypeMethodDescriptionintChecks for abandoned objects and invokes callback.voidclear()Clears all tracked objects.Gets abandoned objects (borrowed longer than timeout).intGets the number of currently tracked objects.Gets all currently tracked objects.voidtrackBorrow(PooledObject<T> pooledObject) Tracks a borrowed object.voidtrackReturn(PooledObject<T> pooledObject) Tracks a returned object.
-
Constructor Details
-
PooledObjectTracker
public PooledObjectTracker()Creates a tracker with default settings. 使用默认设置创建追踪器。 -
PooledObjectTracker
public PooledObjectTracker(Duration abandonedTimeout, boolean captureStackTrace, Consumer<PooledObjectTracker.TrackedObject<T>> abandonedCallback) Creates a tracker with custom settings. 使用自定义设置创建追踪器。- Parameters:
abandonedTimeout- timeout to consider object abandoned - 认为对象被废弃的超时captureStackTrace- whether to capture borrow stack trace - 是否捕获借用调用栈abandonedCallback- callback when abandoned object detected - 检测到废弃对象时的回调
-
-
Method Details
-
trackBorrow
Tracks a borrowed object. 追踪借用的对象。- Parameters:
pooledObject- the borrowed object - 借用的对象
-
trackReturn
Tracks a returned object. 追踪归还的对象。- Parameters:
pooledObject- the returned object - 归还的对象
-
getTrackedObjects
Gets all currently tracked objects. 获取所有当前追踪的对象。- Returns:
- list of tracked objects - 追踪对象列表
-
getAbandonedObjects
Gets abandoned objects (borrowed longer than timeout). 获取废弃对象(借用超过超时时间)。- Returns:
- list of abandoned objects - 废弃对象列表
-
checkAndHandleAbandoned
public int checkAndHandleAbandoned()Checks for abandoned objects and invokes callback. 检查废弃对象并调用回调。- Returns:
- number of abandoned objects found - 发现的废弃对象数量
-
getTrackedCount
public int getTrackedCount()Gets the number of currently tracked objects. 获取当前追踪的对象数量。- Returns:
- the tracked count - 追踪数量
-
clear
public void clear()Clears all tracked objects. 清除所有追踪对象。
-