2

GAE データストアの強い一貫性を強制することは可能ですか?

私はこのコードを持っています:

#!/usr/bin/env python
Import OS, says
import wsgiref.handlers
import webapp2
from google.appengine.ext import db
from google.appengine.ext.webapp.util import run_wsgi_app
from google.appengine.ext.webapp import template

class guestbook(db.Model):
  message = db.StringProperty(required=True)
  when = db.DateTimeProperty(auto_now_add=True)
  who = db.StringProperty()

class ShowGuestbookPage(webapp2.RequestHandler):
  def get(self):
    # Read from the Datastore
    shouts = db.GqlQuery('SELECT * FROM guestbook ORDER BY when DESC')
    values = {'shouts': shouts}
    self.response.out.write(template.render('main.html', values))

class MakeGuestbookEntry(webapp2.RequestHandler):
  def post(self):
    shout = guestbook(message=self.request.get('message'), who=self.request.get('who'))
    # Write into the datastore
    shout.put()
    self.redirect('/')

app = webapp2.WSGIApplication([('/', ShowGuestbookPage),
                               ('/make_entry', MakeGuestbookEntry),
                               debug=True)

def main():
  run_wsgi_app(app)

if __name__ == "__main__":
  main()

強力な一貫性を実現する最も簡単な方法は何ですか?

説明 [1] を Google からソース コードに翻訳する方法がわかりません。

[1] https://developers.google.com/appengine/docs/java/datastore/structuring_for_strong_consistency

助けてくれてありがとう。

4

3 に答える 3

2

はい、エンティティ グループを使用してできます。ドキュメントでその利点と欠点について読んでください。

独自のエンティティ ID を定義して、常に一貫性が保証される「ID ごと」に取得することもできます。

于 2013-10-05T16:56:21.670 に答える
1

取得、書き込み、および削除の操作は、常に強い一貫性があります。祖先クエリも強整合性です。

残りのクエリは強整合性ではなく、強整合性を実現するための特別な構成パラメーターはありません。

于 2013-10-06T07:37:14.227 に答える