我正在使用缓存api缓存一些普通的http响应;但我想配置其内存使用情况。是否有可能对其进行内存限制?或者甚至将它配置为Playframework的其他部分(通过application.conf
)。
答案 0 :(得分:2)
没有特别好记录,但这里有一些线索。
来自ScalaCache#Accessing-different-caches:
在默认的Ehcache实现中,默认缓存称为play,可以通过创建名为ehcache.xml的文件进行配置。
来自Play' Dependencies.scala:
val ehcacheVersion = "2.10.4"
val playEhcacheDeps = Seq(
"net.sf.ehcache" % "ehcache" % ehcacheVersion,
"org.ehcache" % "jcache" % "1.0.1"
) ++ jcacheApi
这是Play的ehcache-default.xml:
<!--
~ 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>
复制该文件的内容,并将其作为资源包含在名为ehcache.xml
的项目中。
所以,让我们去找the documentation for EhCache 2.10.4。
调整Ehcache通常涉及适当调整数据存储层的大小。您可以使用简单的大小调整属性以多种方式调整不同数据层的大小。这些大小调整属性会影响内存和磁盘资源。 下表总结了您可以使用的大小调整属性。
我没有引用该表,但它提到maxBytesLocalHeap
听起来很有希望。
答案 1 :(得分:1)