django芹菜长期运行的任务

时间:2015-02-16 17:27:49

标签: python django django-celery

我有以下球员名单:

player_list = Participant.objects.all()
participant_count = player_list.count()

我想从中随机选择胜利者:

winner_index = random.randint(0, participant_count-1)
winner = player_list[winner_index]

假设我有一百万参与者,那么我想随机生成获胜者需要很长时间。直到那时我的网站才会挂起。

为此,我应该使用芹菜还是其罚款?如果我的网站挂了几分钟并且只显示获胜者怎么办?有什么建议吗?

1 个答案:

答案 0 :(得分:1)

通过正确的索引,您的数据库应该能够处理这个,而无需任何特殊的解决方法。如果你使它与celery异步,那么你将无法在标准的请求/响应周期中包含这些数据。

如果您担心用户的页面速度,您可以加载没有获胜者的页面,然后使用javascript进行ajax调用以获取获胜者并更新页面,允许您向用户显示加载消息他们等了。