В чем разница между context.map_query и qry.map_async в NDB Appengine? - PullRequest
1 голос
/ 08 января 2012

Документация предполагает, что они могут использоваться аналогичным образом. В чем разница и когда каждый из них должен использоваться? Который должен использоваться для оптимальной производительности (так как оба предполагают, что они являются «самыми быстрыми»).

Документация для 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 ]

2 голосов
/ 10 января 2012

Обязательно используйте qry_obj.map_async ().Context (). Map_query () - это низкоуровневый API, который вам не нужен.Обратите внимание, что этот документ устарел;У меня есть TODO, чтобы обновить его, но другие вещи продолжают получать приоритет.К счастью, команда документации Google App Engine сейчас помогает с документацией.

1 голос
/ 09 января 2012

Глядя на реализацию , кажется, 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)
...