多处理和缓存重复

时间:2013-02-22 18:52:22

标签: python django caching memcached multiprocessing

我有一个在多处理中运行的Django站点。我通过Python-memchached启用了Memcahced。我知道每个进程都有自己的内存。

我有一个自定义缓存,可以有效地将整个数据库表T及其相关字段加载到内存中,然后将这些整个数据重新创建为不同的格式并将其保存在对象F中。每次用户尝试添加/删除/更新通过Django的T表,该站点将首先将这些更改应用到F.如果更改通过了一些标准,它将把它保存在Django对象和数据库中。如果更改未通过条件,则会回滚F而不触及Django对象或数据库。

我已将F放在原始表的自定义管理器中。

目标:一个F为他们提供服务

问题:每个进程都有自己的F.它们彼此不一致。初始化F很重,我希望它只在Django应用程序初始化时发生一次。之后修改F很便宜。

问题:我应该把F放在哪里? Memcahced是否有一个数据库副本?在那种情况下,我可以将F(这是一个python对象)放在memcached中并直接处理吗?如何定义F只会初始化一次并且所有进程都可以访问它?

如果有帮助,请参阅以下详细信息: F是NetworkX图。 Django:1.4.3 Gunicorn:0.17.0

非常感谢!

今朝

0 个答案:

没有答案