老师,django里面处理逻辑能使用协程吗?

来源:11-7 ThreadPoolExecutor线程池

改变自己c

2018-09-28

我这边django有个功能就是分析用户上传的excel文件,并且对里面的每一项数据做验证,我是用serializer来做验证的。目前处理900条数据大概需要80秒,速度有点慢,后面一般数据量是4000-5000条,按照目前的速度要6分多钟,实在是太慢了,这个过程是纯计算操作,老师,有什么办法能加快速度吗?能使用协程吗?如果不行,多进程是否可以?或者有什么其他的办法提升速度。

写回答

1回答

bobby

2018-09-29

如果处理是耗时cpu的话 是无法加速的, 你可以将这些任务异步化 比如用celery去做成异步的任务,asyncio是无法解决这种速度的问题 asyncio只是用来做高并发的处理的

0
2
bobby
回复
改变自己c
首先进程和cpu相关, cpu加速是和cpu具体的数量有关,一般进程数和cpu数量一致就够了,多了也没用,这个在cpu处理类型的任务中。不管用什么语言都一样的,但是如果你是io类型的话就不一样了,这个时候快速的切换才是最重要的,多进程带来的优势不明显,甚至可能更低
2018-10-10
共2条回复

Python3高级核心技术97讲,高级进阶的必学课程

socket编程/多线程/多进程/线程池/asyncio并发编程/协程和异步IO

2121 学习 · 551 问题

查看课程