кэширование корпоративной библиотеки - удаление объектов из внешнего процесса (консольное приложение) - PullRequest
2 голосов
/ 13 августа 2010

Мы думаем об использовании инфраструктуры кэширования корпоративной библиотеки в нашем приложении asp.net 3.5 для хранения небольших таблиц наших наиболее популярных продуктов.

Есть ли способ написать внешний процесс, например консольное приложение, чтобы удалить эти таблицы данных, если это необходимо?Например, клиент может войти и обновить данные для продукта, что сделает данные, хранящиеся в кеше, устаревшими.Когда это происходит, я бы хотел, чтобы внешнее приложение зашло в кеш и удалило или даже обновило кеш новыми данными.

1 Ответ

1 голос
/ 13 августа 2010

Я могу придумать два подхода для удаления элементов кэша из процесса.

Первый - использовать FileDependency при добавлении элементов в кэш.Если вы хотите истечь срок действия элемента кэша, то измените файл.

DataTable books = GetTopBooks();

ICacheManager cacheManager = CacheFactory.GetCacheManager();
cacheManager.Add("books", books, CacheItemPriority.NotRemovable, new BookCacheRefreshAction(), 
    new FileDependency("books.xml"));

Затем внешний процесс может завершить срок действия вашей таблицы данных, изменив соответствующий файл на диске (в данном случае books.xml).Вы также можете настроить ICacheItemRefreshAction для обновления кэша (например, из базы данных) по истечении срока его действия.

Если по какой-то причине подход на основе файлов недостаточен, тогда вторым подходом будет создание пользовательского интерфейса, которыйможет быть вызвано приложением вне процесса.например, создать веб-сервис, который удалит элементы из кэша и, возможно, обновит элемент кэша.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...