在uwsgi python应用程序上共享内存
我有一个PythonFlaskWebAPI应用程序,托管在uwsgi后面,进程=4 当我使用Multiprocessing.Manager.dict()创建字典时,字典不会在进程之间共享。每个进程都有自己的dict对象在uwsgi python应用程序上共享内存,python,uwsgi,python-multiprocessing,Python,Uwsgi,Python Multiprocessing,我有一个PythonFlaskWebAPI应用程序,托管在uwsgi后面,进程=4 当我使用Multiprocessing.Manager.dict()创建字典时,字典不会在进程之间共享。每个进程都有自己的dict对象 当我更新命令时,它需要在所有进程中都可用。如何实现这一点Mulitprocessing实际上会启动应用程序的四个独立实例。每个都有自己的全局联锁。这意味着它们对每个实例使用单独的内存 这是故意的。您有两种解决方案。 使用诸如Redis或Memcached之类的高速字典存储,并连接
当我更新命令时,它需要在所有进程中都可用。如何实现这一点Mulitprocessing实际上会启动应用程序的四个独立实例。每个都有自己的全局联锁。这意味着它们对每个实例使用单独的内存 这是故意的。您有两种解决方案。
使用诸如Redis或Memcached之类的高速字典存储,并连接所有服务器以访问它们的数据需求 或 您可以使用gevent和GIPC从单独的运行进程(必须在同一台机器上)来回传输数据。这样做的另一个好处是异步,并且在单独运行的进程之间仍然可以进行数据通信
Mulitprocessing实际上会启动应用程序的四个独立实例。每个都有自己的全局联锁。这意味着它们对每个实例使用单独的内存 这是故意的。您有两种解决方案。
使用诸如Redis或Memcached之类的高速字典存储,并连接所有服务器以访问它们的数据需求 或 您可以使用gevent和GIPC从单独的运行进程(必须在同一台机器上)来回传输数据。这样做的另一个好处是异步,并且在单独运行的进程之间仍然可以进行数据通信
像其他人一样使用redis?像其他人一样使用redis?芹菜不是一个存储系统。我的意思是放memcache。很好,uwsgi缓存框架怎么样?它能在这种情况下工作吗看起来是这样的:“你所有的缓存都可以通过网络访问。一个名为“缓存”的请求插件(Modifier1111)管理来自外部节点的请求。在uWSGI的标准单片构建上,缓存插件始终处于启用状态。缓存插件以完全无阻塞的方式工作,并且对greenthreads/coroutine友好,因此您可以安全地使用gevent或Coro::AnyEvent等技术。”尽管redis非常简单,我建议你这样做芹菜不是一个存储系统,我的意思是放memcache。很好,uwsgi缓存框架怎么样?它能在这种情况下工作吗看起来是这样的:“你所有的缓存都可以通过网络访问。一个名为“缓存”的请求插件(Modifier1111)管理来自外部节点的请求。在uWSGI的标准单片构建上,缓存插件始终处于启用状态。缓存插件以完全无阻塞的方式工作,并且对greenthreads/coroutine友好,因此您可以安全地使用gevent或Coro::AnyEvent等技术。”尽管redis非常简单,我建议朝那个方向走