1

我有一个查询。

messages = Message.objects.all()

我会将结果“消息”发送到被调用函数bulk_send(),但这一次只能接受来自该查询的 500 条消息

所以我在想,有没有办法将结果分成批次,例如

 bulk_send(messages first 500)
 bulk_send(messages next 500)
 bulk_send(messages the remaining )

但这行不通,因为我永远不知道消息中有多少结果可能有 200 或一百万,无论哪种方式 bulk_send 并且在任何给定时间只接受 500。

4

2 回答 2

1
total = Message.objects.all().count()
for i in xrange(0,total,500):
   batch = Message.objects.all()[i:500]
于 2013-08-27T12:05:04.267 回答
1
all_messages = Message.objects.all()

if all_messages.count() == 0:
    return

n = all_messages.count() / 500

for i in range (n if n else 1):
    messages = all_messages[i*500:(i+1)*500]
    bulk_send(messages)
于 2013-08-27T12:44:40.833 回答