Django:同时访问settings.py

时间:2017-01-05 12:28:31

标签: python django concurrency

我不确定是否必须关心并发性,但我没有找到任何关于它的文档。

我有一些数据存储在我的settings.py类似的IP地址,每个用户可以拿一个或给一个。所以我有读写操作,我希望只有一个用户同时读取文件。

我怎么能处理这个?

是的,我想将数据存储在settings.py。我还找到了模块django-concurrency。但我无法在文档中找到任何内容。

2 个答案:

答案 0 :(得分:1)

  

是的,我想将数据存储在settings.py。

不,你绝对不想这样做。 settings.py文件正在配置django以及您可以使用的任何可插入应用程序。它不打算用作转储数据的地方。数据进入数据库。

并且不要忘记settings.py文件通常只读一次。

答案 1 :(得分:1)

正如e4c5所提到的,传统上settings.py对逻辑很轻松。设置的加载机制非常模糊,我个人喜欢远离那些难以理解和与之交互的东西:)

你绝对要关心并发性。你是如何运行你的应用程序的?这很棘手,因为在开发环境中你有一个简单的服务器,通常只能同时处理少量请求(几年前,dev服务器是单线程的)

如果您使用分叉服务器运行应用程序,您将如何在进程之间共享数据?一个进程甚至看不到其他进程settings.py的变化。我甚至不确定使用线程服务器会是什么样子,但它至少可能需要对Web服务器进行源代码审计,以了解处理请求的方式以及如何共享内存。 / p>

使用数据库是迄今为止最简单的解决方案,(您应该能够使用内存数据库作为选项,也可以使用memcache / redis / etc)。 DB提供了开箱即用的并发支持,并且更容易推理并提供并发访问数据的原语。对于redis,它是单线程的,你甚至不用担心并发访问你的共享IP地址