【发布时间】:2012-07-13 14:50:28
【问题描述】:
我有每天左右重新启动的 celery Python 工作进程。它们执行 Python/Django 程序。
我已经设置了一些准全局值,这些值应该在整个过程中保持在内存中。也就是说,我有某些 MySQL 查询集不经常更改,因此会被评估一次,并在进程开始后立即存储为 CONSTANT(一个不好的例子是 PROFILE = Profile.objects.get(user_id=5))。
假设我想在 celery 进程中重置这个值而不执行一个全新的程序。
这个值在许多不同的模块中被导入(和使用)。我假设我必须遍历 sys.modules 中导入 CONSTANT 并删除/重置密钥的每一个?对吗?
这看起来很hacky。我通常使用诸如 Memcached 之类的外部服务来协调多个进程之间的内存,但每隔一段时间,我认为本地内存比通过网络调用 NoSQL 存储更可取。
【问题讨论】:
标签: python django multithreading memory process