我将 NDB 用于我的应用程序,并使用带有限制和起始光标的 iter() 来遍历任务中的 20,000 个查询结果。很多时候我遇到超时错误。
超时:数据存储操作超时,或数据暂时不可用。
我打电话的方式是这样的:
results = query.iter(limit=20000, start_cursor=cursor, produce_cursors=True)
for item in results:
process(item)
save_cursor_for_next_time(results.cursor_after().urlsafe())
我可以减少限制,但我认为一个任务可以运行长达 10 分钟。10 分钟应该足以完成 20000 个结果。事实上,如果运行良好,任务可以在大约一分钟内完成。
如果我切换到 fetch() 或 fetch_page(),它们会更有效率并且不太可能遇到超时错误吗?我怀疑 iter() 中有很多开销会导致超时错误。
谢谢。