Scheduling expensive calculation and using precalculated values between requests in Django
本问题已经有最佳答案,请猛点这里访问。
我有一些函数expensive function(),它需要几秒钟的时间来执行,并返回一个较大的(json中为5MB)数组。
我如何安排Django每隔x小时执行一次函数,然后将结果存储在某个地方,以便用户访问视图时返回那些预先计算好的存储结果?
读/写一个文本文件会产生读取文件然后解析JSON的开销,我觉得django会话不适合这种数据量。
使用django 1.9.7和python 3.4
您应该安装一个异步应用程序来与Django一起工作并创建cron进程。
现在的标准是芹菜你也可以研究一下django频道,这些频道将包含在django 1.10中,但是现在作为一个django独立的应用程序工作。
您可以在Celery中有一个计划任务,它是一个分布式任务队列,并将redis中昂贵函数()的结果保存在redis中,redis是一个键值存储,它将减少从文件中读取的开销。