AppEngine:游标如何工作?

时间:2010-04-04 16:30:38

标签: 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)

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

1 个答案:

答案 0 :(得分:5)

您误导memcache.add,其中记录为here

  

设置键的值,当且仅当时   item不在memcache中。

因此,您永远不会存储与第一个不同的任何光标。请改用memcache.set

  

设置键的值,无论如何   缓存中的先前内容。

请注意,这与游标无关 - 这是关于正确使用memcache的所有内容!