我有一个关于 App Engine 中任务架构的问题。
假设我有一个简单的任务:
class MyTask(webapp2.RequestHandler):
def post(self):
k = ndb.Key(urlsafe=self.request.get('key'))
entities = Model.query(ancestor=k).fetch(100)
for entity in entities:
entity.something = True
ndb.put_multi(entities)
我只有一个前端实例,其中许多任务同时运行。像这样把它变成一个tasklet有意义吗?
class MyTask(webapp2.RequestHandler):
@ndb.synctasklet
def post(self):
k = ndb.Key(urlsafe=self.request.get('key'))
entities = yield Model.query(ancestor=k).fetch_async(100)
for entity in entities:
entity.something = True
yield ndb.put_multi_async(entities)
这是否可能允许收集 RPC 并将它们大批量发送出去?或者它会像同步版本一样快地运行,在每个 RPC 上阻塞?