Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/19.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/variables/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Django-gunicorn-应用程序级别变量(在工作人员之间共享)_Django_Variables_Global_Worker - Fatal编程技术网

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

Django-gunicorn-应用程序级别变量(在工作人员之间共享),django,variables,global,worker,Django,Variables,Global,Worker,所以我有一个玩具django+gunicorn项目。 我希望有一个统计模型,它非常大,只加载到内存中一次,然后在worker/线程中重用它 如何/在何处定义应用程序级别变量? 我试着把它放在settings.py上,也放在wsgi.py上,我认为你不能(也不应该)。工作进程是在运行任何代码之前分叉的独立进程 您可以将“模型”(是什么使它变大?)放在Redis DB中,然后在每个工作人员中访问它。最好的选择可能是创建一个单独的服务,运行一个实例,并通过HTTP或RPC与您的工作人员进行通信(查看一

所以我有一个玩具django+gunicorn项目。 我希望有一个统计模型,它非常大,只加载到内存中一次,然后在worker/线程中重用它

如何/在何处定义应用程序级别变量? 我试着把它放在settings.py上,也放在wsgi.py上,我认为你不能(也不应该)。工作进程是在运行任何代码之前分叉的独立进程

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


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

那么当您尝试这样做时发生了什么?可以通过所有应用程序访问该变量,但每个工作者只有一个变量,而不是一个实例(单例)。有任何提示吗?