Элемент MemoryCache удаляет обратный вызов и изящно завершает работу - PullRequest
0 голосов
/ 16 декабря 2011

После хранения элементов в MemoryCache мне нужно сделать некоторую очистку, когда они будут удалены. Я установил обратный вызов удаленного элемента, и это прекрасно работает. У меня вопрос: если приложение выходит из-за ненормального состояния, например, из-за исключения, или завершается во время выключения системы, как я могу гарантировать, что мой обратный вызов будет вызываться для каждого объекта в кэше?

Дополнительная информация: кэшированные элементы содержат текущий счетчик вызовов API - один объект для каждого пользователя. Я хочу зафиксировать эти подсчеты в базе данных, когда они выходят из кэша, поэтому мне не нужно запускать обновление в базе данных при каждом вызове, который является текущим узким местом в моем процессе.

1 Ответ

1 голос
/ 16 декабря 2011

Не думаю, что так и будет. Если процесс аварийно завершает работу или завершается ненормально (например, вы убиваете его из диспетчера задач), он отбрасывает все. Это также означает, что ваш объект MemoryCache больше не будет иметь значения, поскольку он также будет удален.

...