
org.kawanfw.sql.tomcat.properties.threadpool.DefaultThreadPoolExecutorBuilder Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of aceql-http Show documentation
Show all versions of aceql-http Show documentation
AceQL HTTP is a framework of REST like http APIs that allow to access to remote SQL databases over http from any device that supports http.
AceQL HTTP is provided with four client SDK:
- The AceQL C# Client SDK allows to wrap the HTTP APIs using Microsoft SQL Server like calls in their code, just like they would for a local database.
- The AceQL Java Client SDK allows to wrap the HTTP APIs using JDBC calls in their code, just like they would for a local database.
- The AceQL Python Client SDK allows SQL calls to be encoded with standard unmodified DB-API 2.0 syntax
The newest version!
/*
* Copyright (c)2023 KawanSoft S.A.S. All rights reserved.
*
* Use of this software is governed by the Business Source License included
* in the LICENSE.TXT file in the project's root directory.
*
* Change Date: 2026-02-21
*
* On the date above, in accordance with the Business Source License, use
* of this software will be governed by version 2.0 of the Apache License.
*/
package org.kawanfw.sql.tomcat.properties.threadpool;
import java.lang.reflect.InvocationTargetException;
import java.util.concurrent.BlockingQueue;
import java.util.concurrent.SynchronousQueue;
import java.util.concurrent.ThreadPoolExecutor;
import java.util.concurrent.TimeUnit;
import org.kawanfw.sql.util.SqlTag;
public class DefaultThreadPoolExecutorBuilder implements ThreadPoolExecutorBuilder {
/**
* Creates the ThreadPoolExecutor that will be used using properties
* @throws ClassNotFoundException
* @throws SecurityException
* @throws NoSuchMethodException
* @throws InvocationTargetException
* @throws IllegalArgumentException
* @throws IllegalAccessException
* @throws InstantiationException
*/
@Override
public ThreadPoolExecutor build() {
int corePoolSize = ThreadPoolProperties.DEFAULT_CORE_POOL_SIZE;
int maximumPoolSize = ThreadPoolProperties.DEFAULT_MAXIMUM_POOL_SIZE;
TimeUnit unit = ThreadPoolProperties.DEFAULT_UNIT;
long keepAliveTime = ThreadPoolProperties.DEFAULT_KEEP_ALIVE_TIME;
BlockingQueue workQueue = new SynchronousQueue<>();
boolean prestartAllCoreThreads = ThreadPoolProperties.PRESTART_ALL_CORE_THREADS;
ThreadPoolExecutor threadPoolExecutor = new ThreadPoolExecutor(corePoolSize, maximumPoolSize, keepAliveTime,
unit, workQueue);
if (prestartAllCoreThreads) {
threadPoolExecutor.prestartAllCoreThreads();
}
System.out.println(SqlTag.SQL_PRODUCT_START + " Loading ThreadPoolExecutor:");
System.out.println(SqlTag.SQL_PRODUCT_START + " -> [corePoolSize: " + threadPoolExecutor.getCorePoolSize()
+ ", maximumPoolSize: " + threadPoolExecutor.getMaximumPoolSize() + ", unit: " + unit + ", ");
System.out
.println(SqlTag.SQL_PRODUCT_START + " -> keepAliveTime: " + threadPoolExecutor.getKeepAliveTime(unit)
+ ", workQueue: " + threadPoolExecutor.getQueue().getClass().getSimpleName() + "("
+ threadPoolExecutor.getQueue().remainingCapacity() + "), " + "prestartAllCoreThreads: "+ prestartAllCoreThreads + "]");
return threadPoolExecutor;
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy