Python中具有专用内存的节点进程

Python中具有专用内存的节点进程,python,django,apache,dispy,dask-distributed,Python,Django,Apache,Dispy,Dask Distributed,我正在使用Apache和Django开发一个web应用程序,用户可以在其中与数据模型(用Python封装的C++实现)进行交互 为了避免每次用户操作后在文件或数据库中加载/保存数据,只要用户连接到应用程序,我宁愿将数据模型保存在内存中。 到目前为止,数据模型存储在附加到web服务的变量中。由于在Apache下运行的Python有时会有奇怪的行为,我更喜欢将用户操作执行到单独的Python进程中,今天在同一台服务器上,明天可能在不同的节点上 我的印象是分布式计算库(dispy,dask Distr

我正在使用Apache和Django开发一个web应用程序,用户可以在其中与数据模型(用Python封装的C++实现)进行交互

为了避免每次用户操作后在文件或数据库中加载/保存数据,只要用户连接到应用程序,我宁愿将数据模型保存在内存中。 到目前为止,数据模型存储在附加到web服务的变量中。由于在Apache下运行的Python有时会有奇怪的行为,我更喜欢将用户操作执行到单独的Python进程中,今天在同一台服务器上,明天可能在不同的节点上


我的印象是分布式计算库(dispy,dask Distributed)无法将内存连接到节点。有人对我可以使用哪些库有解决方案/想法吗

简单回答:不要浪费时间去做那些在典型的web服务器上永远无法正常工作的复杂事情,把数据存储在数据库中(不必是mysql数据库FWIW)

最长答案:在生产环境中,通常会有几个并行(子)进程来处理传入的请求,而这些进程中的任何一个都可以随时为任何用户服务,因此将数据保存在进程的内存中永远不会可靠地工作。这是设计,这是一个理智的设计,所以试图与之抗争只是浪费时间和精力。Web服务器进程并不意味着在请求之前保存数据,这就是您的数据库的用途,所以请使用它。

我完全同意“Web服务器进程不意味着在请求之前保存数据”。事实上,对于大多数操作,与加载/保存时间相比,传递到处理数据的时间很短(解释:数据是一个CAD(计算辅助设计)模型,可能参考外部CAD文件,操作可能很简单(创建3d点),或者更复杂。这就是我之所以想到依赖外部python进程的原因。实际上,为了可伸缩性,这意味着用户仍然由相同的进程提供服务。