Стратегия кеширования для asp.net - PullRequest
1 голос
/ 14 мая 2009

Я хотел бы спросить, есть ли способ достичь этой функциональности:

У меня есть пользовательский веб-сайт с поддержкой Ajax (древовидная структура слева и содержимое справа). Когда пользователь выбирает узел слева, мне нужно сохранить последний выбранный узел в базе данных. Однако пользователь может менять узел довольно часто (даже 5 или 10 раз в минуту).

Итак, я хотел бы добавить его в кеш приложения, например:

cache["userName"]=selectedNodeID;

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

Есть подсказки?

1 Ответ

4 голосов
/ 14 мая 2009

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

например. у вас будет что-то вроде этого в качестве последнего параметра вашего метода Cache.Insert:

new CacheItemRemovedCallback (SaveItemToDatabaseAndReturnItToTheCache)

и тогда вы соответственно реализуете метод обратного вызова.

подробнее здесь: http://weblogs.asp.net/kwarren/archive/2004/05/20/136129.aspx

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