Можно ли установить время истечения срока действия с помощью Apache Ignite в C ++? - PullRequest
0 голосов
/ 28 мая 2020

Я использую API тонкого клиента C ++ и хочу, чтобы данные были удалены из кеша через 5 минут. Я подключаюсь к ignite через docker и использую постоянное хранилище. В документации для библиотек C ++ я не могу найти ничего, связанного с «истечением срока», и я попытался добавить параметр истечения срока в файл config xml, который читает мой docker контейнер, но это тоже не сработало. Я поместил данные в кеш и проверил их через 5 минут (я также проверил 10, 20, 30 минут спустя), и данные все еще были там.

Вот мой файл конфигурации xml:

<?xml version="1.0" encoding="UTF-8"?>

<beans xmlns="http://www.springframework.org/schema/beans"
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xsi:schemaLocation="
               http://www.springframework.org/schema/beans
               http://www.springframework.org/schema/beans/spring-beans.xsd">

  <bean id="ignite.cfg" class="org.apache.ignite.configuration.IgniteConfiguration">

    <!-- Enabling Apache Ignite Persistent Store. -->
    <property name="dataStorageConfiguration">
      <bean class="org.apache.ignite.configuration.DataStorageConfiguration">
        <property name="defaultDataRegionConfiguration">
          <bean class="org.apache.ignite.configuration.DataRegionConfiguration">
            <property name="persistenceEnabled" value="true"/>
        <property name="name" value="Default_Region" />
          </bean>
        </property>
      </bean>
    </property>

    <property name="discoverySpi">
      <bean class="org.apache.ignite.spi.discovery.tcp.TcpDiscoverySpi">
        <property name="ipFinder">
          <!-- Uncomment static IP finder to enable static-based discovery of initial nodes. -->
          <!--<bean class="org.apache.ignite.spi.discovery.tcp.ipfinder.vm.TcpDiscoveryVmIpFinder">-->
          <bean class="org.apache.ignite.spi.discovery.tcp.ipfinder.multicast.TcpDiscoveryMulticastIpFinder">
            <property name="addresses">
              <list>
                <!-- In distributed environment, replace with actual host IP address. -->
                <value>127.0.0.1:47500..47502</value>
              </list>
            </property>
          </bean>
        </property>
      </bean>
    </property>

  </bean>


  <bean class="org.apache.ignite.configuration.CacheConfiguration">

    <property name="expiryPolicyFactory">
      <bean class="javax.cache.expiry.CreatedExpiryPolicy" factory-method="factoryOf">
        <constructor-arg>
          <bean class="javax.cache.expiry.Duration">
            <constructor-arg value="MINUTES"/>
            <constructor-arg value="5"/>
          </bean>
        </constructor-arg>
      </bean>
    </property>

  </bean>

</beans>

1 Ответ

0 голосов
/ 28 мая 2020

Да, тонкий клиент c ++ в настоящий момент не поддерживает эту функцию.

Я думаю, вы могли бы определить кеш с полным истечением срока действия на стороне сервера или определить только шаблон кеша https://apacheignite.readme.io/docs/cache-template с политикой истечения срока действия и использовать его с клиента.

...