分享给大家一段轮询整个表的代码,经测试可用:
def queryAllWithHandler(className, handler):
"""遍历表里所有数据,并对数据执行handler(data)
具体实现是根据createdAt时间排序,先查询并处理最早建立的数据(因此支持在操作未完成时若手动添加了新数据)
"""
Class = leancloud.Object.extend(className)
query = Class.query
allDataCompleted = False
batch = 0
limit = 1000
while not allDataCompleted:
query.limit(limit)
query.skip(batch * limit)
query.add_ascending('createdAt')
resultList = query.find()
if len(resultList) < limit:
allDataCompleted = True
for data in resultList:
handler(data)
batch += 1
这段代码我是放在云函数中并由云函数的方式调用的,虽然测试了一下比较顺利,但我有一点疑问:当工作线程数太多、或者请求数过多的时候,不知道会不会导致操作中断?
-
创建时间
17年5月20日
-
最后回复
18年11月21日
-
3
回复
-
3.2K
浏览
-
3
用户
-
1
链接