триггер в Apache Ignite

Кто-нибудь может сказать мне, есть ли в Apache Ignite какая-либо политика триггеров на основе времени?

У меня есть объект с датой истечения срока действия, когда эта дата (метка времени) истекает Я хочу обновить это значение и переопределить его в кеше, возможно ли это в Apache Ignite

заранее спасибо


person Sambhaji Sawant    schedule 19.04.2017    source источник


Ответы (2)


Вы можете настроить политику истечения срока действия в Apache Ignite с активным TTL: Политика срока действия. Таким образом, объекты будут удалены из кеша через определенное время.

Затем вы можете подписаться на javax.cache.event.CacheEntryExpiredListener, который будет запускаться после каждого истечения срока, и обновлять кеш из этого прослушивателя. Однако похоже, что будет небольшое окно, когда срок действия записи в кеше уже истек, и до того, как вы поместите и обновите значение в кеш.

Если указанное выше окно для вас неприемлемо, вы можете просто периодически запрашивать все записи из кеша и обновлять все записи, которые старше определенного срока действия. В этом случае вам нужно будет убедиться, что все записи имеют временную метку, которая будет индексироваться и использоваться в SQL-запросах. Что-то вроде этого:

ВЫБЕРИТЕ * из SOME_TYPE, где отметка времени> 2;

Подробнее о запросах SQL см. Здесь: Распределенные запросы, Локальные запросы.

person Dmitriy    schedule 20.04.2017

Может быть так:

cache.withExpiryPolicy(new CreatedExpiryPolicy(new Duration(TimeUnit.SECONDS, 123))).put(k, v);

Срок действия будет применяться только к этой записи.

Для триггера попробуйте непрерывные запросы: apacheignite.readme.io/docs/continuous -запросы

person iamLalit    schedule 19.04.2019