использование хранилища данных GAE для управления заданиями - PullRequest
1 голос
/ 04 сентября 2011

В моем хранилище данных есть объект «Расчет», скажем, 7 миллионов объектов под этим объектом. Он имеет следующие свойства (время выполнения Python):

class Calculation(db.Model):
    question = db.StringProperty(required=True)
    answer = db.StringProperty()

предположим, что примерами свойства 'question' являются такие вещи, как '1 + 1', '2 + 2', '3 + 3' (не очень важно). Все объекты расчета начинаются с пустых свойств ответа.

Когда пользователь подключается к приложению, выполняется вызов ajax, и мое приложение должно [1] извлечь объект вычисления с пустым свойством ответа и отправить его в браузер пользователя. Затем браузер пользователя оценивает вопрос и отправляет его обратно другому обработчику сервера.

Как обновить свойство ответа этого конкретного объекта вычисления [2]?

Если бы кто-нибудь мог предоставить мне код для [1] и [2], это было бы здорово. Не очень опытен с App Engine, а вопрос с запросами запутан. Каково лучшее решение для этого, если я хочу сохранить как можно больше серверных процессоров?

Спасибо!

1 Ответ

1 голос
/ 04 сентября 2011

Я не знаю, правильно ли я понял.Но вам просто нужно вернуть для вашего первого вызова ajax ключ вычисления сущности и question.Когда пользователь делает ответ, вы сначала получаете сущность по ключу и обновляете свойство answer.

Шаг 1. Вызов ajax возвращает вопрос в JSON (например):

# To fetch an empty answered question
qry = Calculation.All().filter('answer =', None)
ref = qry.get()

# The Json response
{ 'key': unicode(ref.key()),
  'question': ref.question}

Шаг 2, Вы обновляете сущность по ключу:

# key and answer are variable from an http GET or POST request.
ref = db.get(key)
ref.answer = answer
ref.put()
...