def generate_edges_page(ndb_iter, page_size, keys_only, edge_type):
edges = []
timeouts = 0
while len(edges) < page_size:
try:
entity = ndb_iter.next()
except StopIteration:
break
except Timeout:
timeouts += 1
if timeouts > 2:
break
continue
except DeadlineExceededError:
break
if keys_only:
# entity is actualy an ndb.Key and we need to create an empty entity to hold it
entity = edge_type._meta.fields['node']._type._meta.model(key=entity)
edges.append(edge_type(node=entity, cursor=ndb_iter.cursor_after().urlsafe()))
return edges
评论列表
文章目录