将ndb.Tasklets与memcache读取相结合

Kla*_*sen 2 python google-app-engine app-engine-ndb

假设我想阅读以下对象结构,并希望尽可能并行化读取:

root_object --> ShardCounter
            |
             -> SubObject1 (1..N)
            |
             -> SubObject2 (1..N) --> ShardCounter
                                  |
                                   -> SubObject3 (1..N)
Run Code Online (Sandbox Code Playgroud)

1)与memcache和/或store进行交互以从tasklet中获取ShardCounters是否有意义?据我所知,memcache没有get_async,所以我有点不确定这是否会很好地并行化?

2)在生成结果的tasklet中SubObject2,我会使用该iter.has_next_async()模式还是我会调用fecth_async().map(...)以检索SubObject3's,或者完全不同的东西(例如,另一个tasklet)?

谢谢你的任何指示.

Gui*_*sum 7

NDB 确实在Context对象上有自动批处理异步memcache apis.请参阅https://developers.google.com/appengine/docs/python/ndb/contextclass.