首页 > 解决方案 > 访问变量而不在 Django 中的管理命令之间重新加载它们

问题描述

我们正在构建一个支持 AI 的 Web 应用程序,该应用程序使用巨大的内存模型,理想情况下,这些模型应该只在内存中作为全局变量加载一次。

这些变量将由不同的管理命令使用,这些命令作为单独的进程运行并利用 Django 框架。当然,runserver 命令也可以访问这些全局变量。

这些模型加载在单个模块commons中,但由于我们生成不同的进程,让我们现在假设两个 - runserverprocess_tasks,这些模型本质上是通过commons模块在内存中加载两次。

有没有办法集中加载这些模型并在独立产生的进程之间共享变量。我知道 python 和 Manager API 中的多处理模块,但无法找到将它与当前场景结合的方法。

有没有办法运行一个独立的 python 进程来保存这些变量并能够从多个其他进程访问它们?

标签: pythondjangoshared-memory

解决方案


我知道对此没有“适当”的解决方案。在将这些模型加载到 \schema.py 中后,我使用了一种粗略的方法来编写临时文件,然后将对象模型导入到我的“business_logic.py”中,检查文件是否存在,然后不要再次初始化模型。希望它可以帮助别人。


推荐阅读