Почему я должен когда-либо загружать объект Objectify асинхронно? А что означает асинхронная загрузка?Почему .now()? (Objectify)
Согласно Objectify documentation about loading, следующий способ загрузки Субъект является асинхронным:
// Simple key fetch, always asynchronous
Result<Thing> th = ofy().load().key(thingKey);
И если я хочу нагрузки выполнять синхронно, то я должен сделать это:
Thing th = ofy().load().key(thingKey).now(); // added .now()
Для меня, асинхронный означает, что действие будет выполнено позже в какое-то неопределенное время. Для экономии асинхронность имеет смысл, поскольку для работы хранилища данных может потребоваться некоторое время, чтобы закончить самостоятельно, не блокируя код приложения.
Но с нагрузкой асинхронность означает, что нагрузка будет проходить в другое время? Как это возможно в Java? Я думал, что переменная Result<Thing> th
должна быть обновлена, когда заканчивается выполнение строки кода Result<Thing> th = ofy().load().key(thingKey);
.
В качестве новичка мне понадобилось много времени, чтобы понять это (см., Например, Objectify error "You cannot create a Key for an object with a null @Id" in JUnit).
Поэтому у меня есть несколько вопросов:
1] Почему я всегда хочу, чтобы загрузить объект объективизации асинхронно?
2] Что означает асинхронная загрузка?
3] Какова концептуальная связь между now()
для загрузки и now()
для экономии?
Синхронный нагрузки (source)
Thing th = ofy().load().key(thingKey).now();
Синхронный Сохранить (source)
ofy().save().entity(thing1).now();
4] Почему не синхронное поведение по умолчанию для сохранения и загрузки?
Также подали в поддержку билета 05483551 с облачными поддержки Google. Я дам вам, ребята, узнать, что я узнаю. –