Наилучшая практика
Многие ошибочно полагают, что если данные на уровне данных «пустые» (под «пустыми» здесь подразумеваются null или пустое множество), то не нужно выполнять кэширование, чтобы обеспечить своевременное обновление данных. В этом случае необходимо рассматривать каждый случай отдельно.
Данные «пустые» из-за действий человека, а не потому, что данных действительно нет
Типичный пример — некорректная обработка исключений: прямое использование try, catch с последующим возвратом null или пустого множества. Такой подход совершенно неразумен, и пользователь не может понять, действительно ли данных нет или они отсутствуют из-за исключения. Мы также не можем определить, следует ли кэшировать такие данные.
Поэтому при реализации интерфейса уровня данных необходимо разумно использовать обработку исключений.
Если данные действительно «пустые», рекомендуется их кэшировать
Одна из целей использования кэша — предотвратить потерю актуальности кэша и прямой доступ к уровню данных, что может привести к чрезмерной нагрузке на систему. Поэтому, если получение этих данных происходит внезапно и одновременно, это может легко привести к зависанию системы. Если просто обновить данные в кэше как можно быстрее, можно достичь лучшей «реальной» производительности и сократить время кэширования.
AutoLoadCache уже поддерживает этот механизм обработки. Просто используйте expireExpression в @Cache, чтобы динамически установить срок действия кэша, например:
@Cache(key = "...", expireExpression = "#empty(#retVal) ? 60: 120")
Кроме того, когда данные «пустые», это имеет практическое значение: оно говорит нам о том, что в данный момент данных нет, и мы не должны игнорировать этот факт.
Вы можете оставить комментарий после Вход в систему
Неприемлемый контент может быть отображен здесь и не будет показан на странице. Вы можете проверить и изменить его с помощью соответствующей функции редактирования.
Если вы подтверждаете, что содержание не содержит непристойной лексики/перенаправления на рекламу/насилия/вульгарной порнографии/нарушений/пиратства/ложного/незначительного или незаконного контента, связанного с национальными законами и предписаниями, вы можете нажать «Отправить» для подачи апелляции, и мы обработаем ее как можно скорее.
Опубликовать ( 0 )