Class SchedulerServiceProviderHolder
- java.lang.Object
-
- org.mariadb.jdbc.internal.util.scheduler.SchedulerServiceProviderHolder
-
public class SchedulerServiceProviderHolder extends java.lang.Object
Provider for when ever an internal thread pool is needed. This can allow library users to override our default pooling behavior with possibly better and faster options.
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description static interface
SchedulerServiceProviderHolder.SchedulerProvider
Provider for thread pools which allow scheduling capabilities.
-
Field Summary
Fields Modifier and Type Field Description private static SchedulerServiceProviderHolder.SchedulerProvider
currentProvider
static SchedulerServiceProviderHolder.SchedulerProvider
DEFAULT_PROVIDER
The default provider will construct a new pool on every request.
-
Constructor Summary
Constructors Constructor Description SchedulerServiceProviderHolder()
-
Method Summary
All Methods Static Methods Concrete Methods Modifier and Type Method Description static java.util.concurrent.ThreadPoolExecutor
getBulkScheduler()
static java.util.concurrent.ScheduledExecutorService
getFixedSizeScheduler(int initialThreadCount, java.lang.String poolName)
Get a fixed sized scheduler directly with the current set provider.static DynamicSizedSchedulerInterface
getScheduler(int initialThreadCount, java.lang.String poolName, int maximumPoolSize)
Get a Dynamic sized scheduler directly with the current set provider.static SchedulerServiceProviderHolder.SchedulerProvider
getSchedulerProvider()
Get the currently setSchedulerServiceProviderHolder.SchedulerProvider
from set invocations viasetSchedulerProvider(SchedulerProvider)
.static java.util.concurrent.ScheduledExecutorService
getTimeoutScheduler()
Get a scheduler to handle timeout.static void
setSchedulerProvider(SchedulerServiceProviderHolder.SchedulerProvider newProvider)
Change the current set scheduler provider.
-
-
-
Field Detail
-
DEFAULT_PROVIDER
public static final SchedulerServiceProviderHolder.SchedulerProvider DEFAULT_PROVIDER
The default provider will construct a new pool on every request.
-
currentProvider
private static volatile SchedulerServiceProviderHolder.SchedulerProvider currentProvider
-
-
Method Detail
-
getSchedulerProvider
public static SchedulerServiceProviderHolder.SchedulerProvider getSchedulerProvider()
Get the currently setSchedulerServiceProviderHolder.SchedulerProvider
from set invocations viasetSchedulerProvider(SchedulerProvider)
. If none has been set a default provider will be provided (never anull
result).- Returns:
- Provider to get scheduler pools from
-
setSchedulerProvider
public static void setSchedulerProvider(SchedulerServiceProviderHolder.SchedulerProvider newProvider)
Change the current set scheduler provider. This provider will be provided in future requests togetSchedulerProvider()
.- Parameters:
newProvider
- New provider to use, ornull
to use the default provider
-
getScheduler
public static DynamicSizedSchedulerInterface getScheduler(int initialThreadCount, java.lang.String poolName, int maximumPoolSize)
Get a Dynamic sized scheduler directly with the current set provider.- Parameters:
initialThreadCount
- Number of threads scheduler is allowed to grow topoolName
- name of pool to identify threadsmaximumPoolSize
- maximum pool size- Returns:
- Scheduler capable of providing the needed thread count
-
getFixedSizeScheduler
public static java.util.concurrent.ScheduledExecutorService getFixedSizeScheduler(int initialThreadCount, java.lang.String poolName)
Get a fixed sized scheduler directly with the current set provider.- Parameters:
initialThreadCount
- Number of threads scheduler is allowed to grow topoolName
- name of pool to identify threads- Returns:
- Scheduler capable of providing the needed thread count
-
getTimeoutScheduler
public static java.util.concurrent.ScheduledExecutorService getTimeoutScheduler()
Get a scheduler to handle timeout.- Returns:
- Scheduler capable of providing the needed thread count
-
getBulkScheduler
public static java.util.concurrent.ThreadPoolExecutor getBulkScheduler()
-
-