Кеширование в Asp.net - PullRequest
       3

Кеширование в Asp.net

0 голосов
/ 10 февраля 2011

В моем приложении наблюдалась ситуация, когда срок действия моего кэша не истек, когда пользователь все еще обрабатывает мое приложение. Позвольте мне объяснить подробно. Я установил срок действия кэша через 10 секунд и упомянул NoAbsoluteExpiration. Код выглядит примерно так:

Cache.Insert("Data", value, null, System.Web.Caching.Cache.NoAbsoluteExpiration, TimeSpan.FromSeconds(10));

Теперь допустим, что после того, как первый пользователь посетил страницу, через 9 секунд другой пользователь посещает приложение. В этом случае срок действия кэша не истекает на 10-й секунде и распространяется на следующие 10 секунд. Это проблема для нашего приложения, потому что если каждую секунду у меня есть пользователь, посещающий мой сайт, срок действия кэша никогда не истечет. Я обнаружил, что срок действия кэша истекает только в том случае, если приложение не используется в течение 10 секунд. То есть, если в течение 10 секунд не было попадания на сайт.

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

Заранее спасибо.

1 Ответ

2 голосов
/ 10 февраля 2011

Ну, тогда используйте NoSlidingExpiration вместо NoAbsoluteExpiration и дайте ему временной интервал для абсолютного истечения срока действия.

Cache.Insert("Data", value, null, TimeSpan.FromSeconds(10), System.Web.Caching.Cache.NoSlidingExpiration);

Сейчас вы явно указали кэшу делать в точности противоположное тому, что вы хотите.

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