Django - gunicorn - 应用程序级别变量(在工作人员之间共享)

时间:2015-05-08 23:14:10

标签: django variables global worker

所以我有一个玩具django + gunicorn项目。 我希望有一个统计模型,它只能在内存中加载一次,然后在工作者/线程中重复使用。

我如何/在何处定义应用级别变量? 我尝试将它放在settings.py上,也放在wsgi.py

1 个答案:

答案 0 :(得分:0)

我认为你不能(也不应该)。工作者是在运行任何代码之前分叉的单独进程。

您可以在Redis数据库中放置“模型”(它是什么使它变大?)并从那里访问每个工作者。最好的选择可能是创建一个单独的服务,运行单个实例,并通过HTTP或RPC与您的工作人员进行通信(查看nameko以获得简单(微)服务框架。

另一种选择是使用单个Celery工作者,并在任务中进行统计计算。