django runserver,跳过/缓存?同时执行多个时的请求
当运行django admin runserver并同时执行多个PATCH请求时,我会看到所有请求的日志,但调试时只执行一个 使用django admin runserver--nothreading时,问题消失了 我使用的是Pycharm调试器,可能是因为runserver默认使用的是多线程,所以当两个请求同时出现时,会创建第二个线程,Pycharm不会看到/调试该线程。这就是为什么我不能调试它,但我看到了日志 但第二件事是,只有一个请求通过补丁更新成功,我知道django admin runserver不是用于生产的,但是否存在任何数据竞争条件?我曾尝试使用django.db.transaction.atomic,但没有做任何更改 <>强>我最初的结论是如果我们考虑数据库更新,RunServer不是线程保存,所以如果测试多个更新请求——应该使用NothRead标志。< /强> < /P> 如果您能在这里提供帮助/解释,我将不胜感激 最好的, 伊戈尔 港口保安局;不要编写任何代码,因为我认为它在这里没有任何帮助:django runserver,跳过/缓存?同时执行多个时的请求,django,python-3.x,multithreading,Django,Python 3.x,Multithreading,当运行django admin runserver并同时执行多个PATCH请求时,我会看到所有请求的日志,但调试时只执行一个 使用django admin runserver--nothreading时,问题消失了 我使用的是Pycharm调试器,可能是因为runserver默认使用的是多线程,所以当两个请求同时出现时,会创建第二个线程,Pycharm不会看到/调试该线程。这就是为什么我不能调试它,但我看到了日志 但第二件事是,只有一个请求通过补丁更新成功,我知道django admin run
transaction.atomic()。它不会停止不同的线程/进程同时修改相同的行。要做到这一点,您应该研究锁定或锁定
当您使用诸如gunicorn
或mod_wsgi
之类的工具部署Django时,通常会有多个工作线程/线程。因此,如果您在开发中使用--nothreading
,您就隐藏了生产中可能出现的问题。Hi@Alasdair,您是对的--nothreading只是隐藏了问题,我已经修改了代码,使用select\u进行更新,谢谢。如果你想修改你的评论来回答,你解决了我的问题。