ehcache 线程池使用


ehcache 线程池使用

 

 

***********************

ehcache 线程池

 

ehcache中的异步任务需要用线程池来执行,ehcache提供了两种内置的线程池:

OnDemandExecutionService:每次执行异步任务都会创建新的线程池(默认)

PooledExecutionService:预先创建的线程池,后续异步任务可重复使用

 

disk store配置:ehcache磁盘存储是异步执行

OffHeapDiskStoreConfiguration is used to configure what thread pool to use at the cache level, 
while OffHeapDiskStoreProviderConfiguration is used to configure what thread pool to use at the cache manager level.

OffHeapDiskStoreConfiguration:配置在缓存上

OffHeapDiskStoreProviderConfiguration:配置在缓存管理器上

 

Write Behind配置:缓存异步写入后端数据库

DefaultWriteBehindConfiguration is used to configure what thread pool to use at the cache level, 
while WriteBehindProviderConfiguration is used to configure what thread pool to use at the cache manager level.

DefaultWriteBehindConfiguration:配置在缓存上

WriteBehindProviderConfiguration:配置在缓存管理器上

 

Eventing配置:缓存监听事件通过线程池执行

DefaultCacheEventDispatcherConfiguration is used to configure what thread pool to use at the cache level, 
while CacheEventDispatcherFactoryConfiguration is used to configure what thread pool to use at the cache manager level

DefaultCacheEventDispatcherConfiguration:配置在缓存上

CacheEventDispatcherFactoryConfiguration:配置在缓存管理器上

 

 

***********************

相关类与接口

 

PooledExecutionServiceConfigurationBuilder

public class PooledExecutionServiceConfigurationBuilder implements Builder<PooledExecutionServiceConfiguration> {

    private PooledExecutionServiceConfigurationBuilder.Pool defaultPool;
    private final Set<PooledExecutionServiceConfigurationBuilder.Pool> pools = new HashSet();

**********
构造方法

    private PooledExecutionServiceConfigurationBuilder() {
    private PooledExecutionServiceConfigurationBuilder(PooledExecutionServiceConfigurationBuilder other) {
    private PooledExecutionServiceConfigurationBuilder(PooledExecutionServiceConfiguration seed) {


**********
其他方法

    public static PooledExecutionServiceConfigurationBuilder newPooledExecutionServiceConfigurationBuilder() {
    public static PooledExecutionServiceConfigurationBuilder newPooledExecutionServiceConfigurationBuilder(PooledExecutionServiceConfiguration seed) {

    public PooledExecutionServiceConfigurationBuilder defaultPool(String alias, int minSize, int maxSize) {
    public PooledExecutionServiceConfigurationBuilder pool(String alias, int minSize, int maxSize) {

    public PooledExecutionServiceConfiguration build() {


*************
内部类

    private static class Pool {
        private final String alias;
        private final int minSize;
        private final int maxSize;

        Pool(String alias, int minSize, int maxSize) {

 

 

***********************

示例

 

public class Test4 {

    public static void main(String[] args){
        CacheManager cacheManager= CacheManagerBuilder.newCacheManagerBuilder()
                .using(PooledExecutionServiceConfigurationBuilder.newPooledExecutionServiceConfigurationBuilder()
                        .defaultPool("default",5,10)
                        .pool("pool",2,6)
                        .pool("pool2",4,8)
                        .build())
                .withDefaultDiskStoreThreadPool("default")     //默认的磁盘写入线程池
                .withDefaultWriteBehindThreadPool("pool")      //默认的缓存数据写入线程池
                .withDefaultEventListenersThreadPool("pool2")  //默认的事件监听线程池
                .withCache("custom", CacheConfigurationBuilder.newCacheConfigurationBuilder(String.class,String.class, ResourcePoolsBuilder
                        .newResourcePoolsBuilder()
                        .heap(10, MemoryUnit.MB).build())
                        .withDiskStoreThreadPool("pool2",2).build())  //缓存层面配置磁盘写入线程池
                .withCache("custom2",CacheConfigurationBuilder.newCacheConfigurationBuilder(String.class,String.class,ResourcePoolsBuilder
                        .newResourcePoolsBuilder()
                        .heap(10,MemoryUnit.MB)
                        .build())
                        .withLoaderWriter(new CustomLoaderWriter<>())
                        .withService(WriteBehindConfigurationBuilder
                                .newBatchedWriteBehindConfiguration(10, TimeUnit.SECONDS,2)
                                .useThreadPool("pool")                //缓存层面配置缓存写入线程池
                                .build()
                        ).build())
                .withCache("custom2",CacheConfigurationBuilder.newCacheConfigurationBuilder(String.class,String.class,ResourcePoolsBuilder
                        .newResourcePoolsBuilder()
                        .heap(10,MemoryUnit.MB)
                        .build())
                        .withService(CacheEventListenerConfigurationBuilder.newEventListenerConfiguration(new CustomEventListener(), EventType.CREATED))
                        .withEventListenersThreadPool("pool2"))       //缓存层面配置缓存事件监听线程池
                .build(true);
    }
}

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值