edu-xored / memorise

Looking for memes that are becoming popular
GNU General Public License v2.0
9 stars 2 forks source link

Сервис хранения мемов #22

Closed DVEfremov closed 7 years ago

DVEfremov commented 8 years ago

Реализовать сервис и хранение memo кадидатов.

Хранение можно реализовать с использованием Spring cache добавить просто аннатацию на метод сервиса @Cashable

И настроить ehcache
в context.xml добавить

  <!-- Switch on the Caching -->
  <cache:annotation-driven />

  <bean id="cacheManager" class="org.springframework.cache.ehcache.EhCacheCacheManager"
        p:cacheManager-ref="ehcache"/>

  <bean id="ehcache" class="org.springframework.cache.ehcache.EhCacheManagerFactoryBean"
        p:configLocation="classpath:ehcache.xml"
        p:shared="true"/>

добавить конфиг кеша memorise/memorise-web-app/core/src/main/resources/ehcache.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">
  <!--
  | Please see http://ehcache.sourceforge.net/documentation/configuration.html for
  | detailed information on how to configurigure caches in this file
  +-->
  <!-- Location of persistent caches on disk -->

  <!-- Внимание! Если в кешируемом методе используются в качестве парметров storable объекты,
       то значение парметра overflowToDisk="false" ОБЯЗАТЕЛЬНО,
       иначе это приведет к NotSerializableException, так как стораблы не сериализуемы.
        -->
  <diskStore path="java.io.tmpdir/EhCacheSpringAnnotationsSmartASRApp" />

  <defaultCache eternal="false" maxElementsInMemory="1000"
                overflowToDisk="false" diskPersistent="false" timeToIdleSeconds="0"
                timeToLiveSeconds="600" memoryStoreEvictionPolicy="LRU"/>

  <cache name="marketingProgram" maxElementsInMemory="500" eternal="true"
         overflowToDisk="false" memoryStoreEvictionPolicy="LFU" />

</ehcache>
aonnikov commented 7 years ago

@zhuravlev12 расскажи, пожалуйста, про текущий статус задачи? Есть ли какие-то сложности с задачей?