Обновления консоли GAE не применяются к развернутому приложению (не согласованность в конечном итоге)

Мое приложение соответствует стандарту GAE.

Я могу редактировать объект в облачной консоли по URL-адресу, который начинается со следующего:

https://console.cloud.google.com/datastore/entities/query

Я сохраню объект и обновлю страницу, и будут показаны новые данные.

Затем на своем веб-сайте я перехожу на страницу, которая извлекает объект, используя идентификатор объекта, подобный этому

e = Entity.get_by_id(1234)

Но мой сайт показывает старые данные! Похоже, этого не должно быть.

Мое единственное решение - затем использовать удаленную оболочку api для получения объекта (который показывает старые данные), а затем обновить, а затем поместить объект. Затем мой веб-сайт показывает новые данные.

Как это возможно, что обновление объекта в облачной консоли не отображается в рабочей среде при получении объекта по его идентификатору?


person gaefan    schedule 24.09.2018    source источник
comment
Спасибо за ответы. Я знал это в какой-то момент и забыл ...   -  person gaefan    schedule 25.09.2018


Ответы (2)


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

person Patrick Jones    schedule 24.09.2018
comment
Вам нужно очистить весь кеш для ndb, или есть соответствующий ключ, который вы можете очистить для отдельного объекта? В ручном кэше памяти вы можете управлять парой ключ / значение, но это то же самое в ndb? - person user1961; 04.06.2019

Попробуйте что-то вроде этого:

e = Entity.get_by_id(1234, use_cache=False, use_memcache=False)

or

the_key = ndb.Key(Entity, 12345)
the_key.get(use_cache=False, use_memcache=False)

Вы можете установить и другие параметры, например memcache_timeout и read_policy:

https://cloud.google.com/appengine/docs/standard/python/ndb/functions#context_options

person GAEfan    schedule 24.09.2018