首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Play框架:每次代码热编译时都会出现EhCache问题

Play框架是一款基于Java和Scala的开源Web应用框架,它提供了高效的开发工具和丰富的功能,旨在简化Web应用程序的开发过程。Play框架采用了独特的“代码热编译”机制,使开发人员能够在修改代码后立即查看更改的效果,无需重新启动应用程序。

在使用Play框架进行代码热编译时,有时会出现EhCache问题。EhCache是一种开源的Java缓存框架,用于提高应用程序的性能和响应速度。然而,在Play框架中,由于代码热编译的特性,可能会导致EhCache的缓存失效或出现一些不一致的问题。

为了解决这个问题,可以采取以下措施:

  1. 禁用EhCache缓存:在Play框架的配置文件中,可以将缓存配置修改为使用其他缓存解决方案,如Redis或Memcached。这样可以避免EhCache的问题,并提供更稳定和可靠的缓存机制。
  2. 清除缓存:在代码热编译过程中,可以在每次重新编译之前手动清除EhCache缓存。这可以通过在代码中添加清除缓存的逻辑或使用Play框架提供的缓存管理工具来实现。
  3. 使用Play框架的开发模式:Play框架提供了两种运行模式,即开发模式和生产模式。在开发模式下,代码热编译会更频繁地发生,因此可能会增加EhCache问题的出现几率。在生产模式下,代码热编译会被禁用,从而减少了EhCache问题的可能性。

总结起来,为了解决Play框架代码热编译时可能出现的EhCache问题,可以禁用EhCache缓存、定期清除缓存或使用Play框架的生产模式。这些措施可以提高应用程序的稳定性和性能,并确保在开发过程中不会受到EhCache问题的干扰。

腾讯云相关产品和产品介绍链接地址:

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

动态下发 so 库在 Android APK 安装包瘦身方面的应用

也就是说:同样的 APK 宿主,同样的 so 插件,安装在不同 abi 设备上,动态化框架的插件处理行为是不一样的。 这个问题也可是说是版本控制问题上面的一个分支问题。...我之前琢磨着,Tinker 之所以一直没有把 dlopen 问题暴露出来,主要是因为 Tinker 是修复框架,补丁插件里需要的 liblog.so 文件,往往在宿主里本来就有内置一份,所以只会导致修复部分失效...而实际上好巧不巧,Tinker 在解决 Android N 的混合编译带来的修复失败问题,在往 ClassLoader 注入插件 so 文件路径的时候,会创建一个新的 AndroidNClassLoader...这个是一个 CI 问题,换句话说就是我们需要一个稳定灵活的流水线,用于稳定编译我们指定版本的 so 插件包,而不是每次都通过非常手工、笨拙的方式编包。...Play Store 动态代码禁用问题 由于一些众所周知的原因,包含有动态代码的 APK 包是无法上传到 Play Store 的。

8.2K74

java开发面试题

a.改变单例作用域 在对应的类名上加上该注解@Scope("prototype"),表示每次调用该接口都会生成一个新的Bean。...下图示例 b.解决方案二 ThreadLocal解决问题 c.尽量不使用成员变量 d.更改作用于为request 每次请求相当于重新生成对象 2、union和union all的区别 union:查询的结果集会合并...git和svn的区别 git是分布式的 svn不是分布式的 git把数据按元数据存储 svn是按文件存储 git没有一个全局版本号 svn有 svn提交必须先update然后在commit,忘记合并会出现问题...join 内链接 表1 表2只展示有交集的数据 6、msql函数 char_length() format() left() right() weekday() year() now() 7、Sql查询如果某字段是...和redis的区别 ehcache是一个纯java的进程缓存框架,运行在jvm上,效率高,速度快,但是缓存共享麻烦,分布式架构麻烦 redis是一个独立程序,通过socket访问到缓存服务,效率比ehcache

13220

mybatis 详解 一级缓存、二级缓存

中还可以配置userCache和flushCache等配置项,userCache是用来设置是否禁用二级缓存的,在statement中设置useCache=false可以禁用当前select语句的二级缓存,即每次查询都会发出...使用缓存如果手动修改数据库表中的查询数据会出现脏读。...如上图所示,在几个不同的服务器之间,我们使用第三方缓存框架,将缓存都放在这个第三方框架中,然后无论有多少台服务器,我们都能从缓存中获取数据。   ...这里我们介绍mybatis与第三方框架ehcache的整合。   上文一开始提到过,mybatis提供了一个cache接口,如果要实现自己的缓存逻辑,实现cache接口开发即可。...①、导入 mybatis-ehcache 整合包(最上面的源代码中包含有) ? ②、在全局配置文件 mybatis-configuration.xml 开启缓存 <!

36420

Ehcache的自信从何而来 —— 感受来自Ehcache的强大实力

Ehcache2.x时代就已经支持了基于内存和磁盘的二级缓存能力,而演进到Ehcache3.x版本进一步扩展了此部分能力,增加了对于堆外缓存的支持。...(ResourcePoolsBuilder.java:53) 集群缓存(Cluster) 作为单机缓存,数据都是存在各个进程内的,在分布式组网系统中,如果缓存数据发生变更,就会出现各个进程节点中缓存数据不一致的问题...,缓存数据都会丢失,需要重新去构建。...支持变身分布式缓存 在本专栏开立后的第一篇文章《聊一聊作为高并发系统基石之一的缓存,会用很简单,用好才是技术活》中,我们介绍了下在集群多节点场景下本地缓存经常会出现的一个缓存漂移问题。...Hibernate的默认缓存策略 Hibernate是一个著名的开源ORM框架实现,提供了对JDBC的轻量级封装实现,可以在代码中以面向对象的方式去操作数据库数据,此前著名的SSH框架中的H,指的便是Hibernate

87960

shiro框架04会话管理+缓存管理+Ehcache使用

如访问一些网站登录成功后,网站可以记住用户,且在退出之前都可以识别当前用户是谁。...property name="sessionIdUrlRewritingEnabled" value="false"/> 二、缓存管理 1、为什么要使用缓存 在没有使用缓存的情况下,我们每次发送请求都会调用一次...2、什么是ehcache Ehcache是现在最流行的纯Java开源缓存框架,配置简单、结构清晰、功能强大。是Hibernate中默认CacheProvider。...5) 好扩展       Ehcache提供了对大数据的内存和硬盘的存储,最近版本允许多实例、保存对象高灵活性、提供LRU、LFU、FIFO淘汰算法,基础属性支持配置、支持的插件多   6) 监听器...: There is no session with id错误,通过升级shiro版本后问题解决!!!

72510

重学SpringBoot系列之EhCache缓存,缓存问题

重学SpringBoot系列之EhCache缓存,缓存问题,session共享与redis分布式锁 EhCache缓存 整合Spring Cache 与Ehcache 缓存的使用方法 缓存使用中的坑 缓存雪崩穿透等解决方案...缓存使用的若干问题 缓存穿透 缓存击穿 缓存雪崩 redis 缓存配置 自定义缓存到期时间 自定义配置实现缓存失效时间个性化 EhCache缓存 在Spring框架内我们首选Spring Cache作为缓存框架的门面...缓存的具体存储还需要具体的缓存存储,比如EhCache 、Redis等。Spring Cache与缓存框架的关系有点像SLF4j与logback、log4j的关系。...这个坑不是单独针对EhCache的,只要使用Spring Cache都会有这个问题。...如果请求去查询一条压根儿数据库中根本就不存在的数据,也就是缓存和数据库都查询不到这条数据,但是请求每次都会打到数据库上面去,造成对后端数据库的强大压力。这种查询不存在数据的现象我们称为缓存穿透。

1.5K20

【高并发】面试官:说说缓存最关心的问题?有哪些类型?回收策略和算法?

为使更多童鞋受益,现给出开源框架地址: https://github.com/sunshinelyz/mykit-delay PS: 欢迎各位Star源码,也可以pr你牛逼哄哄的代码。...那么,问题来了,当你为系统加上缓存,有没有考虑过使用缓存需要注意哪些事项呢? 缓存命中率 缓存命中率是从缓存中读取数据的次数与总读取次数的比率,命中率越高越好。...一般使用堆缓存存储较的数据。可以使用Guava Cache、Ehcache 3.x、 MapDB实现。...但是,读取数据需要序列化/反序列化。因此,会比堆缓存慢很多。可以使用Ehcache 3.x、 MapDB实现。...使用分布式缓存,有两种模式如下: 单机模式:存储最热的数据到堆缓存,相对的数据到堆外缓存,不热的数据到磁盘缓存。 集群模式:存储最热的数据到堆缓存,相对的数据到对外缓存,全量数据到分布式缓存。

36910

大厂都在用EhCache,它到底比Redis强在哪里?

甚至听说,代码不重要,不行就加机器呗。...这篇文章就带大家认识除Redis之外的另一种缓存框架EhCache。之所以要写写,也是因为项目中运用了此框架,同时又遇到点问题,于是决定深入研究一下。...EhCache的特点 简单说一下该框架的特点: 简单、快速,拥有多种缓存策略; 缓存数据有两级:内存和磁盘,无需担心容量问题; 缓存数据会在虚拟机重启的过程中写入磁盘; 可以通过RMI、可插入API等方式进行分布式缓存...另外就是不能保证数据安全,当然突然kill掉Java进程,可能会产生冲突。EhCache解决冲突的方法是重建Cache,这对Cache数据需要保持可能会产生影响。...Ehcache采用的是懒淘汰机制,每次往缓存放入数据都会存一个时间,在读取要和设置的时间做TTL比较来判断是否过期。

4.3K12

大型高并发与高可用的三层缓存架构总结

实战踩坑:对于想从RDB恢复数据,同时AOF开关也是打开的,一直无法正常恢复,因为每次都会优先从AOF获取数据(如果临时关闭AOF,就可以正常恢复)。...ehcache tomcat jvm堆内存缓存,主要是抗redis出现大规模灾难。...,但是的确可能某些机器的负载会高一些 分布式缓存重建并发冲突解决方案 对于缓存生产服务,可能部署在多台机器,当redis和ehcache对应的缓存数据都过期不存在,此时可能nginx过来的请求和kafka...因此,可以提前放入数据到redis避免上述冷启动的问题,当然也不可能是全量数据,可以根据类似于当天的具体访问情况,实时统计出访问频率较高的数据,这里数据也比较多,需要多个服务并行的分布式去读写到redis...事中的解决方案,部署一层ehcache缓存,在redis全部实现情况下能够抗住部分压力;对redis cluster的访问做资源隔离,避免所有资源都等待,对redis cluster的访问失败的情况去部署对应的熔断策略

1.5K70

大型分布式系统中的缓存架构

它是使用最广泛的基于 Java 的缓存,因为它功能强大,经过验证,功能齐全,并与其他流行的库和框架集成。 Ehcache 可以从进程内缓存扩展到使用 TB 级缓存的混合进程内/进程外部署。...缓存数据过期策略 Ehcache 过期数据淘汰机制:即懒淘汰机制,每次往缓存放入数据的时候,都会存一个时间,在读取的时候要和设置的时间做 TTL 比较来判断是否过期。...数据淘汰内部实现:懒淘汰机制为每次往缓存放入数据的时候,都会存一个时间,在读取的时候要和设置的时间做 TTL 比较来判断是否过期。 分布式集群实现:服务端并没有 “ 分布式 ” 功能。...数据一致性 因为缓存属于持久化数据的一个副本,因此不可避免的会出现数据不一致问题,导致脏读或读不到数据的情况。...数据不一致,一般是因为网络不稳定或节点故障导致问题出现的常见 3 个场景以及解决方案: ?

76230

【高并发】在高并发环境下该如何构建应用级缓存?

作者个人研发的在高并发场景下,提供的简单、稳定、可扩展的延迟消息队列框架,具有精准的定时任务和延迟队列处理功能。...为使更多童鞋受益,现给出开源框架地址: https://github.com/sunshinelyz/mykit-delay PS: 欢迎各位Star源码,也可以pr你牛逼哄哄的代码。...写在前面 随着我们的系统负载越来越高,系统的性能就会有所下降,此时,我们可以很自然地想到使用缓存来解决数据读写性能低下的问题。...一般使用堆缓存存储较的数据。可以使用Guava Cache、Ehcache 3.x、 MapDB实现。...但是,读取数据需要序列化/反序列化。因此,会比堆缓存慢很多。可以使用Ehcache 3.x、 MapDB实现。

40310

mybatis 详解(九)------ 一级缓存、二级缓存

中还可以配置userCache和flushCache等配置项,userCache是用来设置是否禁用二级缓存的,在statement中设置useCache=false可以禁用当前select语句的二级缓存,即每次查询都会发出...使用缓存如果手动修改数据库表中的查询数据会出现脏读。...这里我们介绍mybatis与第三方框架ehcache的整合。   上文一开始提到过,mybatis提供了一个cache接口,如果要实现自己的缓存逻辑,实现cache接口开发即可。...①、导入 mybatis-ehcache 整合包(最上面的源代码中包含有) ? ②、在全局配置文件 mybatis-configuration.xml 开启缓存 <!...解决此类问题可能需要在业务层根据需求对数据有针对性缓存。

89260

理解分布式系统中的缓存架构(上)

它是使用最广泛的基于Java的缓存,因为它功能强大,经过验证,功能齐全,并与其他流行的库和框架集成。Ehcache可以从进程内缓存扩展到使用TB级缓存的混合进程内/进程外部署 应用场景 ?...Ehcache架构图 ? Ehcache主要特征 ? Ehcache缓存数据过期策略 ?...Ehcache过期数据淘汰机制 懒淘汰机制:每次往缓存放入数据的时候,都会存一个时间,在读取的时候要和设置的时间做TTL比较来判断是否过期 Guava Cache 基本介绍 Guava Cache是Google...数据淘汰内部实现 懒淘汰机制:每次往缓存放入数据的时候,都会存一个时间,在读取 的时候要和设置的时间做TTL比较来判断是否过期 分布式集群实现 服务端并没有 “ 分布式 ” 功能。...,都会存一个时间,在读取的时候要和设置的时间做TTL比较来判断是否过期 单机QPS 约10W 约60W 源代码可读性 代码清爽简洁 能是考虑了太多的扩展性,多系统的兼容性,代码不清爽 适用场景 复杂数据结构

1.2K40

开源中国社区创始人红薯:J2Cache开源中国两级缓存实践

内容摘要 J2Cache 是开源中国开发的一个两级缓存框架,以高性能著称。那么它与同样是缓存框架Ehcache和redis的区别在哪,又有哪些高性能的体现呢?...Ehcache缓存框架 开源中国是用Java开发的。Java在做缓存的时候有一个很著名的Ehcache框架,它是基于内存的一个缓存框架,速度非常快。...Ehcache还提供了缓存数据的侦听接口。一个缓存数据一旦出现问题,就会得到通知。Ehcache也支持集群部署。 J2Cache 开源中国成立公司是在2011年,网站在2008年就上线了。...这个网站撑了有两三年的时间,后来数据长得很快,就开始出现问题了。第一个就是单节点无法应付高并发的访问。还有一个最可怕的问题就是因为程序更新很频繁,Java每次更新的时候都要重启。...J2Cache数据读取流程 每次读数据的时候首先从Ehcache里先读,因为Ehcache在你的内存中。

99890

【Android Gradle 插件】修复实现 ① ( Android 修复系统组成 | 修复工作流程 | 修复使用到的技术 | 修复框架选择注意事项 )

, 手机端的 SDK 每次启动都会到 服务器端 检查是否有最新的修复包 , 如果有则下载最新的修复包 , 并在本地配置该修复包 , 每次启动都加载并执行该修复包数据 ; 三、修复使用到的技术 ---...; 修复 , 插件化 , 换肤框架 都用到该技术 ; 差分打包技术 : 使用 bsdiff.so 动态库 , 对比代码差异 , 进行差分打包 ; 字节码插桩技术 : 使用 ASM , Javassit...技术 , 编译替换相关类 ; Android Gradle 插件相关技术 : 开发 自定义 Android Gradle 插件 , 整个修复相关技术 ; NDK 相关技术 : 需要 编译生成 so...动态库 ; 四、修复框架选择注意事项 ---- 挑选修复框架 , 一定要要选择一直保持更新的框架 ; 凡是使用到 插件化 , 修复 , 加固 等需要 HOOK 操作的框架 , 必须注意 ,...HOOK 框架必须适配所有的 Android 版本, Android 源代码每个版本都不一样 , 选择的 HOOK 点也不一样 ; 如果选择 AndFix 修复框架 , 该框架已经好几年没有更新 ,

52510

shiro笔记(八)springboot 整合shiro框架,使用这个ehcache缓冲技术

目录 ehcache简介 为什么使用这个ehcache技术 代码实现 添加依赖 写ehcache的配置文件 ehcache简介 EHCache是sourceforge的开源缓存项目,现已经具有独立官网...EHCache支持内存和磁盘缓存,默认是存储在内存中的,当内存不够允许把缓存数据同步到磁盘中,所以不需要担心内存不够问题。...为什么使用这个ehcache技术 现在的问题,我们在页面只用shiro标签实现是否有权限,或者注解判断是否有权限,每一个标签,或者每一个注解,都会走realm里面的授权的方法,里面会从数据库查询权限之后...每一个标签或者注解都会走这个方法,都会进行查询数据库一次,我们的项目里面是使用了很多的权限标签和注解的,每一个都走数据库,那么是不好的。...代码实现 添加依赖 2.1添加依赖 从3.0版本开始groupid为org.ehcache <!

45930

太强了,全面解析缓存应用经典问题

1)简化应用程序代码 在缓存方法中,应用程序代码仍然很复杂,并且直接依赖于数据库,如果多个应用程序处理相同的数据,甚至会出现代码重复。...2缓存穿透 缓存穿透是指一些异常访问,每次都去查询压根儿就不存在的key,导致每次请求都会打到数据库上去。例如查询不存在的用户,查询不存在的商品id。如果是用户偶尔错误输入,问题不大。...对于key的操作的顺序性问题,可以通过设置一个时间戳来解决。大部分场景下,要写入缓存的数据都是从数据库中查询出来的。在数据写入数据库,可以维护一个时间戳字段,这样数据被查询出来时都会带一个时间戳。...解决方案: 要解决这种极热 key 的问题,首先要找出这些 key 。对于重要节假日、线上促销活动、凭借经验可以提前评估出可能的 key 来。...比如利用ehcache,或者一个HashMap都可以。在你发现key以后,把key加载到系统的JVM中,之后针对key的请求,可以直接从jvm中获取数据。

24631
领券