Задать вопрос
@skorpix

На одном сервере два сайта. Обоим нужна celery. Как настроить?

Доброго времени суток.
Есть два независимых друг от друга сайта на django. Оба запущены на одном сервере, но под разными юзерами. Как настроить celery на каждом проекте? Нужно создать две бд в redis? Или запустить два процесса на разных портах? Или что? Я в этом мало понимаю и пока что плохо улавливаю суть, что для чего нужно.

P.S. я один раз пытался запустить два celery, но задачи как-то странно выполнялись, как будто задачи с одного сайта выполнялись на бд второго сайта.
  • Вопрос задан
  • 575 просмотров
Подписаться 2 Оценить Комментировать
Решения вопроса 1
@gotlium
pydev, devops
project #1
BROKER_URL = 'redis://localhost:6379/0'

project #2
BROKER_URL = 'redis://localhost:6379/1'
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 2
@andrewshkovskii
1. Правильно настроить celery для django
2. Использовать redis для хранения задач в celery (нет никакой необходимости использовать sql БД для хранения очередей celery)
3. Использовать supervisor для запуска celery.

Покажите, для начала, конфигурации для celery для двух ваших проектов.
Ответ написан
Комментировать
@skorpix Автор вопроса
andrewshkovskii настройки есть для первого сайта.

BROKER_URL = 'redis://localhost:6379/0'
CELERYD_CONCURRENCY = 8
CELERYD_MAX_TASKS_PER_CHILD = 100
CELERY_EMAIL_TASK_CONFIG = {
    'rate_limit': '6/m'
}

celery запускается через supervisor
[program:celery]
command=/home/%(user)s/.env/bin/python /home/%(user)s/current/manage.py celery worker -l INFO
directory=/home/%(user)s/current
environment=DJANGO_SETTINGS_MODULE="project.settings.%(environment)s"
autostart=true
autorestart=true
redirect_stderr=true
stdout_logfile=/home/%(user)s/log/celery.log
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы