Обновления консоли GAE не применяются к развернутому приложению (непоследовательная согласованность) - PullRequest
0 голосов
/ 24 сентября 2018

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

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

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

Я сохраню сущность и обновлюстраницы и отображаются новые данные.

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

e = Entity.get_by_id(1234)

Но на моем веб-сайте отображаются старые данные!Кажется, что это не должно быть возможно.

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

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

Ответы [ 2 ]

0 голосов
/ 25 сентября 2018

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

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

или

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

0 голосов
/ 25 сентября 2018

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

...