С тех пор, как GAE перешла на модель ценообразования в начале прошлой недели, я боролся с превышением моей квоты на операции чтения и записи хранилища данных. Я не уверен, считает ли Google все обновления для одного писателя как одну запись или каждое обновление столбца считается отдельной записью.
Если последнее верно, могу ли я обойти это, используя одну функцию обновления для обновления 6 столбцов в параметрах, или я также буду платить за 6 обновлений?
Вот мой существующий код, используемый для обновления счет игрока (рейтинг) и другие данные одновременно. На данный момент я всегда указываю имя, адрес электронной почты, рейтинг, выигранные, сыгранные и достижения значениями, полученными от клиента. Одним из решений может быть отправка их со стороны клиента только тогда, когда они изменили значение.
Long key = Long.valueOf(updateIdStr);
System.out.println("Key to update: " + key);
PlayerPersistentData ppd =null;
try {
ppd = pm.getObjectById(
PlayerPersistentData.class, key);
// for all of these, make sure we actually got a value via
// the query variables
if (name != null && name.length() > 0) {
ppd.setName(name);
}
if (ratingStr != null && ratingStr.length() > 0) {
ppd.setRating(rating);
}
if (playedStr != null && playedStr.length() > 0) {
ppd.setPlayed(played);
}
if (wonStr != null && wonStr.length() > 0) {
ppd.setWon(won);
}
if (encryptedAchievements != null
&& encryptedAchievements.length() > 0) {
ppd.setAchievements(achievements);
}
if (email != null & email.length() > 0) {
ppd.setEmail(email);
}
resp.getWriter().print(key);
} catch (JDOObjectNotFoundException e) {
resp.getWriter().print(-1);
}
}