AppEngine:游标如何工作?

vic*_* n. 0 python

我有以下代码

def get(self):
    date = datetime.date.today()
    loc_query = Location.all()

    last_cursor = memcache.get('location_cursor')
    if last_cursor: loc_query.with_cursor(last_cursor)
    loc_result = loc_query.fetch(1)

    for loc in loc_result:
        self.record(loc, date)
        taskqueue.add(
            url='/task/query/simplegeo',
            params={'date':date, 'locid':loc.key().id()}
        )

    if len(loc_result):
        memcache.add('location_cursor', loc_query.cursor())
        taskqueue.add(url='/task/count/', method='GET')
    else:
        memcache.add('location_cursor', None)
Run Code Online (Sandbox Code Playgroud)

我不知道我做错了什么,但我得到了同样的光标,这不是我想要的效果.为什么光标不移动?

Ale*_*lli 5

你在滥用memcache.add,这里记录为:

当且仅当项目不在memcache中时,设置键的值.

因此,您永远不会存储与第一个不同的任何光标.memcache.set相反,使用哪个

无论缓存中的先前内容如何,​​都设置密钥的值.

请注意,这与游标无关 - 这一切都与正确使用有关memcache!