Мемоизированные данные обновляются, когда происходит одно из трех:
- Изменяются значения входных аргументов
- Срок действия кеша истек
- Кэш очищен
В примере в вашей ссылке новый uuid
генерируется при каждой загрузке страницы. Этот идентификатор передается в качестве аргумента мемоизированной функции, и, таким образом, данные будут обновляться при загрузке страницы из-за (1).
Если прошло больше предопределенного тайм-аута ( значение по умолчанию 300 секунд )), данные будут обновлены согласно (2). Вероятно, поэтому вы столкнулись с тем, что « данные также перезагружаются, когда я выхожу из приложения на пару минут и возвращаюсь ». Вы можете настроить тайм-аут в соответствии с вашими потребностями с помощью параметра CACHE_DEFAULT_TIMEOUT
объекта Cache
или с помощью ключевого слова timeout
декоратора memoize
.
Кроме того, кеш будет обновлен, если данные не может быть найден (3). Помимо ручного удаления, это может произойти, если в кеше не хватает места. По умолчанию 500 элементов кэша сохраняется . Это число можно изменить с помощью аргумента CACHE_THRESHOLD
объекта Cache.