簡體   English   中英

帶有多個Django站點的芹菜

[英]Celery with multiple django sites

我有幾個客戶站點的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:

from settings import *

DEBUG = False
DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.mysql',
        'NAME': 'customer_1_db',
        'USER': 'some_user',
        'PASSWORD': 'some_passw',
        'HOST': '127.0.0.1',
        'PORT': '',
    }
}
MEDIA_ROOT = 'media/customer_1'

每個站點都是由主管管理的單獨過程,並使用單獨的數據庫。 另外,我在單獨的服務器上有一個Redis。

我需要一些具有數據庫訪問權限的芹菜后台任務。

我怎樣才能做到這一點?

UPDATE

好吧,我可以經營多個芹菜工人。 我可以從控制台做到這一點

$ export DJANGO_SETTINGS_MODULE=my_proj.settings_production_2
$ /home/.../my_vitrual_env/bin/celery -A my_proj worker -l info

但是我不能從主管那里運行它

[program:celery2]
directory=/home/.../my_proj
command=/home/.../my_vitrual_env/bin/celery -A asl worker -l info
environment=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中,您可以通過設置DJANGO_SETTINGS_MODULE env變量從相應的設置對象配置celery應用程序,並使用該變量來加載相應的設置。

然后在有監督的情況下,通過將起始行指定為celery multi -A my_proj並使用正確的DJANGO_SETTINGS_MODULE env變量,為每個站點分配自己的芹菜。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM