导读:本篇文章首席CTO笔记来给大家介绍有关django怎么并发的相关内容,希望对大家有所帮助,一起来看看吧。
django并发是多线程还是epoll
django自带的那个是效率相当低下的,它没有采用epoll/kqueue。
具体支持多少人在线,这个很难说。
测了一下,对于我的电脑,初始django工程的根的并发能力大概是294。
相比而言,tornado是高性能的server,用它文档的web的范例,并发能力大概是1324。
对nginx上的一个只包含“hello world!"的静态文件的访问,并发能力大概是2942
django 并发请求 是多线程吗
用Django搭了个环境,创建了一个App。
我想要测试假如同时多个请求进来Django的处理方式,于是写了一下代码在View.py中:
Python code?
def archive(request):
print("start")
time.sleep(5)
print("end")
return HttpResponse("Hellow World")
如何在Django模型中管理并发性
1、我们在我们的查询器上使用select_for_update来告诉数据库锁定对象,直到事务完成。
2、在数据库中锁定一行需要一个数据库事务 - 我们使用Django的装饰器transaction.atomic来定义事务。
3、我们使用类方法而不是实例方法 - 我们告诉数据库要上锁,然后它会返回锁的对象给我们。 为了实现这一点,我们需要从数据库中获取对象。 如果我们使用self,那么就是在操作一个已经从数据库中获取出来的对象,这个对象无法保证自己是没有被上锁的。
4、帐户中的所有操作都在数据库事务中执行。
结语:以上就是首席CTO笔记为大家整理的关于django怎么并发的全部内容了,感谢您花时间阅读本站内容,希望对您有所帮助,更多关于django怎么并发的相关内容别忘了在本站进行查找喔。