1

質問があります。

messages = Message.objects.all()

結果の「メッセージ」を呼び出された関数に送信しますbulk_send()が、これは一度にこのクエリから 500 メッセージしか受け入れることができません

だから私は考えていた、例えば結果をバッチに分割する方法はありますか

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

しかし、これは機能しません。メッセージに含まれる結果の数がわからないためです。どちらの方法でも、bulk_send で 200 または 100 万になる可能性があります。

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 に答える