带有多个Django站点的芹菜 [英] Celery with multiple django sites

查看:41
本文介绍了带有多个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屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆