Scala 重头戏2.6:缓存Api和内存使用配置
我使用cacheapi来缓存一些普通的http响应;但是,我想配置它的内存使用情况。有可能对其设置内存限制吗?甚至可以将其配置为与Playframework的其他部分类似(通过Scala 重头戏2.6:缓存Api和内存使用配置,scala,playframework,Scala,Playframework,我使用cacheapi来缓存一些普通的http响应;但是,我想配置它的内存使用情况。有可能对其设置内存限制吗?甚至可以将其配置为与Playframework的其他部分类似(通过application.conf) 玩吧!文档显示,您可以使用配置文件配置应用程序的缓存。是一个示例,演示如何根据对象数而不是默认的字节数限制缓存大小。在这里,您还可以找到ehcache(默认播放!缓存提供程序)xml配置文档。文档不是特别详细,但这里有一些线索 发件人: 在默认的Ehcache实现中,默认缓存称为play
application.conf
) 玩吧!文档显示,您可以使用配置文件配置应用程序的缓存。是一个示例,演示如何根据对象数而不是默认的字节数限制缓存大小。在这里,您还可以找到ehcache(默认播放!缓存提供程序)xml配置文档。文档不是特别详细,但这里有一些线索
发件人:
在默认的Ehcache实现中,默认缓存称为play,可以通过创建名为Ehcache.xml的文件进行配置
从Play's:
下面是剧本:
复制该文件的内容,并将其作为资源包含在名为ehcache.xml
的项目中
那我们去找吧
优化Ehcache通常涉及适当调整数据存储层的大小。您可以使用简单的调整大小属性以多种方式调整不同数据层的大小。这些大小调整属性会影响内存和磁盘资源。
下表总结了可以使用的大小调整属性
我不会引用这个表,但它提到了一个
maxBytesLocalHeap
,听起来很有希望。看起来Play使用了Ehcache 2.10.4,所以你的Ehcache 3.3链接可能会产生误导。为了澄清,我们只添加了一个文件ecache.xml
,它应该位于conf
文件夹中,对吗?此外,如果应用程序达到指定的限制,该怎么办?第一个问题:是(但请确保其名称为ehcache.xml
)。第二个问题:
val ehcacheVersion = "2.10.4"
val playEhcacheDeps = Seq(
"net.sf.ehcache" % "ehcache" % ehcacheVersion,
"org.ehcache" % "jcache" % "1.0.1"
) ++ jcacheApi
<!--
~ Copyright (C) 2009-2017 Lightbend Inc. <https://www.lightbend.com>
-->
<ehcache xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../config/ehcache.xsd" updateCheck="false">
<defaultCache
maxElementsInMemory="10000"
eternal="false"
timeToIdleSeconds="120"
timeToLiveSeconds="120"
overflowToDisk="false"
maxElementsOnDisk="10000000"
diskPersistent="false"
diskExpiryThreadIntervalSeconds="120"
memoryStoreEvictionPolicy="LRU"
/>
</ehcache>