Кто-нибудь пытался сделать недействительным пространство имен memcached на основе timestamp? . Мне нужно иметь пространство имен memcached, которое является меткой времени сервера tomcat, на котором размещаются мои службы API. Мне нужно аннотировать вызовы методов, чтобы пространство имен было переменной (а не константой), и оно содержит отметку времени запуска сервера.Недействительное пространство имен с использованием простой весны memcached
@ReadThroughAssignCache(namespace = "api_divisions_", assignedKey="allDivisions")
public List<Division> getAllDivisions()
{
List<Division> all = (List<Division>)getHibernateTemplate().find("from Division");
return all;
}
Затем каждый сервер запускается, пространство имен этого метода необходимо динамически установить на время запуска сервера.
Обновление - я знаю, что есть обходной способ использования этого с помощью javaassist и динамических аннотаций, но мне нужен лучший подход.
-Gotz
Спасибо за ответ. Ну, мне не нужны старые значения при запуске сервера. Наличие временной метки было простым подходом к обновлению кеша при запуске сервера, и LRU позаботится об остальном. Но есть ли способ, с помощью которого я могу аннулировать кеш при запуске сервера, используя SSM API? – gotz
Создайте настраиваемый компонент весны с зависимостью от [Кэш] (https://simple-spring-memcached.googlecode.com/svn/docs/2.0.0/apidocs/com/google/code/ssm/Cache.html) и как init-метод этого метода набора компонентов, который вызывает [Cache.flush] (https://simple-spring-memcached.googlecode.com/svn/docs/2.0.0/apidocs/com/google/code/ssm/Cache. HTML # вровень()). Он должен работать так, как вы хотите. Имейте в виду, что в многосерверной среде перезапуск одного из серверов приведет к аннулированию кеша всех серверов (я предполагаю, что все серверы используют те же memcached экземпляры). – ragnor
Да, все серверы используют одни и те же экземпляры кеша. Отдам это. Благодарю. – gotz