2015-01-28 3 views
0

Каждый раз, когда я начинаю свою деятельность, я получаю объект пользователя с сервера с помощью spicemanager.execute с параметрами UserCacheKey и CacheTime недели.RoboSpice не перезаписывает кешированный объект, если не учитывать кеш

Когда я делаю попытку обновления, я игнорирую текущий кеш-кешированный кеш пользователя с помощью spicemanager.execute без предоставления параметров UserCacheKey и CacheTime.

Теперь, когда я получил объект newUser с сервера, я хочу перезаписать существующий пользовательский объект, все еще находящийся в кеше, с этим новым. Итак, что я делаю, я использую spicemanager.putInCache и поставляю параметры User.class, UserCacheKey и newUserObject. Что я нахожу странным, так это то, что я не могу предоставить CacheTime. В любом случае, теперь я бы подумал, что старый объект User перезаписан моим новым, потому что я использовал тот же UserCacheKey для хранения объекта.

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

Извините, что это выделенный текст, но я не знаю, реализую ли я его правильно.

ответ

1

Когда RoboSpice загружает данные из сети, он помещается в кеш, индексированный ключом кэша, типом объекта и отметкой времени. На этом этапе срок действия не имеет смысла. Он используется только для следующих запросов, когда данные уже находятся в кеше.

Что я рекомендую использовать execute(..., DurationInMillis.ONE_WEEK, ...) для нормальной нагрузки. Это означает, что если данные будут найдены в кеше, он проверяет, действительно ли оно менее недели.

Затем при ручном освещении используйте execute(..., DurationInMillis.ALWAYS_EXPIRED, ...), чтобы кеш был пропущен и данные загружены из сети. Загруженные данные по-прежнему сохраняются в кеше, поэтому следующий «нормальный» запрос может получить его.

+0

Он сделал трюк Thnx! Я пробовал это, но затем я использовал свою собственную Statics для TIME_WEEK и не использовал кеш 0 .... я забыл версию ALWAYS_EXPIRED (которая имеет значение -1) dum dum dum XD – Charx