带有多个Django站点的芹菜 [英] Celery with multiple django sites
本文介绍了带有多个Django站点的芹菜的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我为少数客户的站点提供了一个django后端:
my_proj|-my_proj|-__init__.py|-settings.py|-settings_development.py|-settings_production_1.py|-settings_production_2.py|-settings_production_3.py|-my_app_1|-my_app_2...
settings_production_1.py:
从设置导入*调试=假数据库= {'默认': {'ENGINE':'django.db.backends.mysql','NAME':'customer_1_db','USER':'some_user','PASSWORD':'some_passw','主机':'127.0.0.1','港口': '',}}MEDIA_ROOT ='媒体/客户_1'
每个站点都是由主管管理的单独过程,并使用单独的数据库.另外,我在单独的服务器上有一个Redis.
我需要一些具有数据库访问权限的celery后台任务.
我该怎么做?
更新
好的,我可以经营多位芹菜工人.我可以从控制台做到这一点
$ export DJANGO_SETTINGS_MODULE = my_proj.settings_production_2$/home/.../my_vitrual_env/bin/celery -my_proj工作者-l信息
但是我不能从主管那里运行它
[program:celery2]目录=/home/.../my_proj命令=/home/.../my_vitrual_env/bin/celery -A作业人员-l信息环境= DJANGO_SETTINGS_MODULE = my_proj.settings_production_2...
解决方案
您可以为项目配置应用程序.例如:
my_proj|-my_proj|-__init__.py |-celery.py |-settings.py|-settings_development.py|-settings_production_1.py|-settings_production_2.py|-settings_production_3.py
等
在celery.py中,您可以从 解决方案
You configure an app for your project . e.g.:
my_proj
| - my_proj
|- __init__.py
|- celery.py
|- settings.py
|- settings_development.py
|- settings_production_1.py
|- settings_production_2.py
|- settings_production_3.py
etc.
In the celery.py you configure the celery app from the appropriate settings object by setting the DJANGO_SETTINGS_MODULE
env variable and use that to load the appropriate settings.
And then in supervisord, you give each site its own celery by specifying the start line as celery multi -A my_proj
and with the correct DJANGO_SETTINGS_MODULE
env variable.
这篇关于带有多个Django站点的芹菜的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文