Я пытаюсь реализовать бизнес-функциональность, которая использует временные кеши Coherence.
Одной из функций, от которых я планировал зависеть, является автоматическое вытеснение записей из кеша при предоставлении (настраиваемого) времени жизни во время помещения элемента в кеш. Интерфейс NamedCache предоставляет API для достижения этой цели (http://download.oracle.com/otn_hosted_doc/coherence/330/com/tangosol/net/NamedCache.html#put(java.lang.Object, java.lang.Object, long )).
Однако я также планирую использовать Entry-Processors для обеспечения эффективного параллелизма в кластере. Сейчас я застрял в точке, где в рамках процессора я должен работать с InvocableMap.Entry для получения/установки значений с помощью ключа в кеше. К сожалению, нет метода setValue, который позволяет указать значение времени жизни.
Я предполагаю, что прямое взаимодействие со ссылкой NamedCache внутри метода процесса EntryProcessor не будет хорошей идеей и поставит под угрозу гарантии параллелизма, которые предоставляет EntryProcessor.
Не могли бы вы поделиться своими мыслями о том, что может быть лучшим способом вытеснения записи через определенное время (которое определяется динамически), обеспечивая при этом оптимальный параллелизм в кластере узлов?
Я не совсем зациклен на использовании функции автоматического выселения. Однако, если бы я отказался от этого, мне, возможно, пришлось бы полагаться на программное удаление записи на основе таймера, которое надежно работает в кластере. Опять же, мне не хватает идей на этот счет. В идеале я хотел бы, чтобы Coherence занималась этим.
Спасибо заранее.
С уважением, - Адитья