Appengine的NDB中context.map_query和qry.map_async有什么区别?

时间:2012-01-08 18:32:21

标签: database google-app-engine asynchronous app-engine-ndb

文档似乎表明它们可以类似地使用。有什么区别,什么时候应该使用?哪个应该用于最佳性能(因为两者都表明它们是“最快的”)。

context.map_query的文档:https://docs.google.com/document/d/1rPyB2RmRERAZDPpqy2cxzXeDGyfLhX-s-3dFVpnwFXw/edit?hl=en_US#heading=h.wniiq5a4ja4o

qry_obj.map_async的文档:https://docs.google.com/document/d/1rPyB2RmRERAZDPpqy2cxzXeDGyfLhX-s-3dFVpnwFXw/edit?hl=en_US#heading=h.t1t6424hbp7y

2 个答案:

答案 0 :(得分:2)

绝对使用qry_obj.map_async()。 Context()。map_query()是您不应该需要的低级API。请注意,该文件已过时;我有一个TODO来更新它,但其他事情一直在优先考虑。幸运的是,Google App Engine文档团队现在正在帮助提供文档。

答案 1 :(得分:1)

查看显示的implementation Query.map_async只是调用Context.map_query的快捷方式:

def map_async(self, callback, merge_future=None, **q_options):
   """Map a callback function or tasklet over the query results.

   This is the asynchronous version of Query.map().
   """
   return tasklets.get_context().map_query(self, callback,
                                           options=_make_options(q_options),
                                           merge_future=merge_future)