1 В избранное 0 Ответвления 0

OSCHINA-MIRROR/qiujiayu-AutoLoadCache

Присоединиться к Gitlife
Откройте для себя и примите участие в публичных проектах с открытым исходным кодом с участием более 10 миллионов разработчиков. Приватные репозитории также полностью бесплатны :)
Присоединиться бесплатно
Клонировать/Скачать
suggest.md 3.1 КБ
Копировать Редактировать Web IDE Исходные данные Просмотреть построчно История
gitlife-traslator Отправлено 27.11.2024 00:26 77bc1ee

Наилучшая практика

Обработка «пустого» значения

Многие ошибочно полагают, что если данные на уровне данных «пустые» (под «пустыми» здесь подразумеваются null или пустое множество), то не нужно выполнять кэширование, чтобы обеспечить своевременное обновление данных. В этом случае необходимо рассматривать каждый случай отдельно.

  1. Данные «пустые» из-за действий человека, а не потому, что данных действительно нет

    Типичный пример — некорректная обработка исключений: прямое использование try, catch с последующим возвратом null или пустого множества. Такой подход совершенно неразумен, и пользователь не может понять, действительно ли данных нет или они отсутствуют из-за исключения. Мы также не можем определить, следует ли кэшировать такие данные.

    Поэтому при реализации интерфейса уровня данных необходимо разумно использовать обработку исключений.

  2. Если данные действительно «пустые», рекомендуется их кэшировать

    Одна из целей использования кэша — предотвратить потерю актуальности кэша и прямой доступ к уровню данных, что может привести к чрезмерной нагрузке на систему. Поэтому, если получение этих данных происходит внезапно и одновременно, это может легко привести к зависанию системы. Если просто обновить данные в кэше как можно быстрее, можно достичь лучшей «реальной» производительности и сократить время кэширования.

    AutoLoadCache уже поддерживает этот механизм обработки. Просто используйте expireExpression в @Cache, чтобы динамически установить срок действия кэша, например:

    @Cache(key = "...", expireExpression = "#empty(#retVal) ? 60: 120")

    Кроме того, когда данные «пустые», это имеет практическое значение: оно говорит нам о том, что в данный момент данных нет, и мы не должны игнорировать этот факт.

Опубликовать ( 0 )

Вы можете оставить комментарий после Вход в систему

1
https://api.gitlife.ru/oschina-mirror/qiujiayu-AutoLoadCache.git
git@api.gitlife.ru:oschina-mirror/qiujiayu-AutoLoadCache.git
oschina-mirror
qiujiayu-AutoLoadCache
qiujiayu-AutoLoadCache
master