我有以下代码(简化版)
for data in my_data_array:
res = api_request(data)
#write result to db
这些请求可能需要一些时间,并且有很多请求。如何使用Django使循环的每个迭代异步进行,并将进度以及已完成请求的百分比发送到前端。如果必须使用Tornado或Celery,请给我链接,并提供有关如何将Django与它们集成的信息。
您将需要Celery(或其他异步任务队列)。要将其与Django集成,请参见http://celery.readthedocs.org/en/latest/django/first-steps-with-django.html。我建议将Celery与Redis一起使用,因为Redis通常用作缓存,因此您不需要为Celery安装另一个后端(主要是RabbitMQ)。
要获得进度条,请计算任务总数(len(my_data_array)
),将值存储在缓存中(例如,键total_count),然后将第二个键(例如complete_count)添加为零值。在完成的每个任务中,增加complete_count值。
最后一步是查询状态。这只是一个简单的视图,它从缓存中加载这两个值并返回给用户(html / json)。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句