首页
学习
活动
专区
工具
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.9K74

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

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

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

    41020

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

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

    1.1K60

    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版本后问题解决!!!

    85310

    重学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.8K20

    《Apache Shiro 源码解析》- 8.缓存

    例如,当每秒有 100 万用户尝试登录系统,认证模块每秒会被调用 100 万次。此时, CPU 和 Memory 都会飙升,性能问题将不可避免地浮现出来。...提升性能正是 Shiro 框架引入缓存机制的一个重要原因。 在 Shiro 中,缓存主要用于以下 3 个方面: 认证缓存:存储用户的认证信息,避免每次请求都需要重新认证。...EhCacheManager 集成了开源的 EhCache 框架EhCache 支持磁盘持久化、多级缓存(内存+磁盘缓存)、集群部署等功能,适用于中大型应用。...的支持,包名为 shiro-ehcache.jar ,这个包非常小,里面只有 2 个类和一个默认的 ehcache.xml 配置文件: EhCache 是一个轻量级、快速且功能强大的开源 Java 缓存框架...然而, Shiro 毕竟是一个安全框架,并不是专业的缓存框架,开发者在面对更复杂的业务需求,可能需要设计自己的缓存 DAO。

    7020

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

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

    39110

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

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

    6.1K13

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

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

    1.6K70

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

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

    81830

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

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

    42910

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

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

    91860

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

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

    1.1K90

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

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

    1.2K40

    快速掌握:大型分布式系统中的缓存架构

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

    61030

    Java 缓存机制与缓存失效

    本文将介绍 Java 缓存机制 的基本原理,结合 Redis、Ehcache框架的应用,深入探讨缓存的常见策略和缓存失效的处理方法。...缓存失效:当数据发生变化或缓存过期,删除缓存中的旧数据。...二、Java 缓存框架介绍 缓存框架 适用场景 特点 常用功能 Ehcache 本地缓存 轻量级,支持内存和磁盘 TTL、TTI、LRU 缓存失效策略 Redis 分布式缓存、高并发 支持多种数据结构,...Ehcache Ehcache 是一个轻量级的 Java 缓存框架,支持内存缓存和磁盘缓存,可以集成到 Spring 等框架中,应用于本地缓存。 代码示例: <!...缓存穿透 缓存穿透是指查询一个在缓存和数据库中都不存在的数据,导致每次请求都要查询数据库。为了解决这个问题,可以使用 布隆过滤器(Bloom Filter),它能高效判断某个数据是否存在。

    7910
    领券