flowable 图片缓存

二次信任 提交于 2019-12-15 03:18:33

背景
由于我们的每次显示图片的话,都将需要大量的查询和相关的流。这样对我们的系统压力极大,用户体验极差。

所以使用了缓存把图片流缓存起来,这样就可以解决问题了。

实现
这里我用的是ehcache,由于他小巧依赖少。

1.把我们的包导入进来

<!--开启 cache 缓存-->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-cache</artifactId>
        </dependency>
        <!-- ehcache 缓存 -->
        <dependency>
            <groupId>net.sf.ehcache</groupId>
            <artifactId>ehcache</artifactId>
        </dependency>

2.配置xml文件

<?xml version="1.0" encoding="UTF-8"?>
<ehcache xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:noNamespaceSchemaLocation="http://ehcache.org/ehcache.xsd"
         updateCheck="false">
    <diskStore path="/data/flow/ehcache"/>
    <defaultCache
            eternal="false"
            maxElementsInMemory="900"
            overflowToDisk="false"
            diskPersistent="false"
            timeToIdleSeconds="0"
            timeToLiveSeconds="30"
            memoryStoreEvictionPolicy="LRU"/>
    <!-- 这里的 cache-process-image 缓存流程的图片信息 -->
    <cache
            name="cache-process-image"
            eternal="false"
            maxElementsInMemory="2000"
            maxElementsOnDisk="3000"
            overflowToDisk="true"
            diskPersistent="true"
            timeToIdleSeconds="0"
            timeToLiveSeconds="1296000"
            memoryStoreEvictionPolicy="LRU"/>
</ehcache>

3.配置application.properties文件

spring.cache.ehcache.config=classpath:/ehcache/flow-ehcache.xml


4.配置缓存注解

@Cacheable(value = FlowConstant.CACHE_PROCESS_IMAGE, key = "'" + FlowConstant.PROCESSINSTANCE_PREFIX + "'+ #processDefinitionId")
    public byte[] createImage(String processDefinitionId) {}

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!