private ExecutorService collectClientMetricExecutor()

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;
    }