Camel Cache Time To Live для Ehcache 3 не работает - PullRequest
0 голосов
/ 08 апреля 2019

Я использую ehcache 3.0 и последнюю версию верблюда Apache.Я хотел бы удалить элемент из кэша через 120 секунд.

Ниже приведен фрагмент кода, который я использую для достижения того же

        <setHeader headerName="CamelCacheOperation" id="setCamelEhCacheOperation001">
            <constant>CamelCacheAdd</constant>
        </setHeader>
        <setHeader headerName="CamelCacheTimeToLive" id="setCamelCacheTimeToLive001">
            <simple resultType="java.lang.Integer">120</simple>
        </setHeader>
        <setHeader headerName="CamelCacheTimeToIdle" id="setCamelCacheTimeToIdle001">
           <simple resultType="java.lang.Integer">120</simple>
        </setHeader> 
        <setHeader headerName="CamelCacheEternal" id="setCamelCacheEternal001">
            <simple resultType="java.lang.Integer">0</simple>
        </setHeader>
        <setHeader headerName="CamelEhcacheAction" id="setCamelEhCacheAction001">
            <constant>PUT</constant>
        </setHeader>
        <setHeader headerName="CamelEhCacheKey" id="setCamelEhCacheAction001">
            <simple resultType="java.lang.String">${property[cachekey]}</simple>
        </setHeader> 
       <setHeader headerName="CamelEhcacheValue" id="setCamelEhCacheValue001">
                <simple>${body}</simple>
        </setHeader>            
        <to id="putValueToEhCache" uri="ehcache://cache1?keyType=java.lang.String&amp;valueType=java.lang.String"/>

Даже после продолжительности TTL элемент остается в кэше.Я использовал это как справку: https://camel.apache.org/cache.html Я застрял на этом некоторое время.Заранее спасибо.

1 Ответ

2 голосов
/ 08 апреля 2019

CamelCacheTimeToLive для старого компонента верблюжьего кэша, новый, camel-ehcache, не обрабатывает такой заголовок.

Для настройки срока действия кэша необходимо настроить пользовательскую конфигурацию, как описано http://www.ehcache.org/documentation/3.7/expiry.html

...