所以我有一个玩具django + gunicorn项目。 我希望有一个统计模型,它只能在内存中加载一次,然后在工作者/线程中重复使用。
我如何/在何处定义应用级别变量? 我尝试将它放在settings.py上,也放在wsgi.py
上答案 0 :(得分:0)
我认为你不能(也不应该)。工作者是在运行任何代码之前分叉的单独进程。
您可以在Redis数据库中放置“模型”(它是什么使它变大?)并从那里访问每个工作者。最好的选择可能是创建一个单独的服务,运行单个实例,并通过HTTP或RPC与您的工作人员进行通信(查看nameko以获得简单(微)服务框架。
另一种选择是使用单个Celery工作者,并在任务中进行统计计算。