在Python中使用专用内存的节点进程

时间:2017-07-24 09:50:05

标签: python django apache dispy dask-distributed

我正在使用Apache和Django开发一个Web应用程序应用程序,用户可以在其中与数据模型交互(C ++实现包含在Python中)。

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

我认为分布式计算库(dispy,dask distributed)不能保持内存连接到节点。有没有人有关于我可以使用哪些库的解决方案/想法?

1 个答案:

答案 0 :(得分:0)

简单的回答:不要浪费时间尝试做一些永远无法正常使用典型Web服务器并将数据存储在数据库中的复杂事物(不必是mysql数据库FWIW)。

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