0

У меня есть объект, который я пишу, чтобы датастор следующий:Как долго мне нужно ждать после написания объекта, чтобы appengine datastore я могу его прочитать?

new_entity = ModelOb() 
new_entity.interesting = True 
new_entity_key = new_entity.put() 
new_entity_key_urlsafe = new_entity_key.urlsafe() 

Я хочу назвать организацию вскоре после этого. Я нашел, что для вызова его с помощью запроса, например.

the_entity = ModelOb.query().filter(ModelOb.interesting = True).get() 

Мне нужно подождать некоторое время (через несколько секунд) после первоначальной записи, иначе оно вернет null. Мой вопрос: если я использую

the_entity = ndb.Key(urlsafe = new_entity_key_urlsafe).get() 

- время, которое мне нужно будет подождать меньше?

+0

Попытайтесь выяснить, что я скажу –

+0

Я нашел огромное количество несоответствий в своих тестах, поэтому я спрашиваю здесь:/Надеюсь, что кто-то изнутри узнает о себе ... – user714852

ответ

3

Если вы извлекаете объект с ключом, вам не нужно ждать вообще. Вы можете сделать это сразу же после того, как вы положили объект.

Если вы получаете объект с запросом, вам нужно немного подождать. Обычно достаточно нескольких секунд, но нет ограничения по времени, после которого вы гарантированно сможете получить объект. Независимо от того, как долго вы ждете, всегда есть вероятность, что объект недоступен, но эта возможность ДЕЙСТВИТЕЛЬНО мала через несколько секунд.

+0

Спасибо для ответа. Просто чтобы немного расширить этот вопрос. Если это существующий объект, и определенное свойство обновляется, например. new_entity.interesting = False в приведенном выше примере. Не могли бы вы дать мне руководство о том, как долго мне придется ждать после put(), пока я не прочитаю объект и не увижу изменения? Похоже, что это тоже очень дико, без всякой причины. – user714852

+1

Это то же самое для обновления объекта. Ключ всегда будет получать последнее обновление и с запросом вам нужно немного подождать. –

+0

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

 Смежные вопросы

  • Нет связанных вопросов^_^