Запуск задач Celery для 2 Django приложений в рамках одного проекта? - PullRequest
0 голосов
/ 31 января 2020

У меня есть проект Django, который требует выполнения задач Celery для двух своих приложений. Мне было интересно, есть ли способ иметь один файл celery.py, который запускает их оба.

Дерево файлов:

src
|--api 
|      |-- init.py
|      |-- otherFiles
|      |-- celery 
|          |-- celery.py
| 
|--xyz 
|      |-- init.py
|      |-- otherFiles
|      |-- celery 
|         |-- celery.py
|
|--otherApps

Если бы я запускал приложения Celery вручную, Я бы запустил:

source venv/bin/activate
cd src
celery worker -A api

И в другом терминале:

source venv/bin/activate
cd src
celery worker -A xyz

Для двух рабочих из сельдерея требуется доступ к одним и тем же базам данных.

Вот так мой файл сельдерея выглядит так:

from __future__ import absolute_import, unicode_literals
import os
from celery import Celery

os.environ.setdefault("DJANGO_SETTINGS_MODULE", "api.settings")
app = Celery("api")
app.config_from_object("django.conf:settings", namespace="CELERY")
app.autodiscover_tasks()

Другой заменяет app = Celery('api') на app = Celery('xyz').

Это правильный способ справиться с этим? Могу ли я создать один сценарий и запустить из него обе задачи?

Если нет, как лучше всего это реализовать?

Рабочий сервер работает под управлением Ubuntu 18.04 и python 3.6.9, поэтому я планирую использовать systemd, хотя предложения приветствуются.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...