in src/main/java/org/apache/rocketmq/exporter/task/MetricsCollectTask.java [98:118]
private ExecutorService collectClientMetricExecutor(
CollectClientMetricExecutorConfig collectClientMetricExecutorConfig) {
collectClientTaskBlockQueue = new LinkedBlockingDeque<Runnable>(collectClientMetricExecutorConfig.getQueueSize());
ExecutorService executorService = new ClientMetricCollectorFixedThreadPoolExecutor(
collectClientMetricExecutorConfig.getCorePoolSize(),
collectClientMetricExecutorConfig.getMaximumPoolSize(),
collectClientMetricExecutorConfig.getKeepAliveTime(),
TimeUnit.MILLISECONDS,
this.collectClientTaskBlockQueue,
new ThreadFactory() {
private final AtomicLong threadIndex = new AtomicLong(0);
@Override
public Thread newThread(Runnable r) {
return new Thread(r, "collectClientMetricThread_" + this.threadIndex.incrementAndGet());
}
},
new ThreadPoolExecutor.DiscardOldestPolicy()
);
return executorService;
}