Задачи сельдерея из одного домена отображаются в администраторе django другого домена, расположенном в том же окне

У меня довольно забавная проблема, которую мне не удалось найти в другом месте. У меня есть 2 проекта django-celery, работающие с redis на 2 разных доменах, но, очевидно, размещенные на одной коробке. У меня нет доступа к sudo, поэтому я не использую демон reddis или celery, но вместо этого я проверяю / запускаю их через cron следующим образом:

ps -u $USER | grep redis-server >/dev/null || $HOME/bin/redis-server $HOME/redis-stable/redis.conf

ps -u $USER | grep python >/dev/null || $HOME/python27/bin/python $HOME/utilities/manage.py celeryd -E -B --concurrency=1 && $HOME/python27/bin/python $HOME/utilities/manage.py celerycam

Я ничего не изменял в исходном файле redis.conf, и для обоих проектов мой файл "settings.py" содержит:

BROKER_URL = "redis://localhost:6379/0"
BROKER_TRANSPORT_OPTIONS = {'visibility_timeout': 3600}
CELERY_RESULT_BACKEND = 'redis://localhost:6379/0'

import djcelery
from celery.schedules import crontab

djcelery.setup_loader()

CELERYBEAT_SCHEDULER = 'djcelery.schedulers.DatabaseScheduler'

Хорошо, проблема в том, что у меня есть 2 запланированных задания в администраторе djcelery django одного домена, а для другого домена еще нет задач. Но на странице "Задачи" в этом домене администратора второго домена я вижу все задачи, запущенные первым доменом. Я не знаю, что я могу сделать, чтобы это исправить. Мои домены не используют одну и ту же базу данных или какие-либо другие ресурсы, и, анализируя их процессы, я вижу, что у каждого из них есть свои разные экземпляры redis, celeryd и celerycam. Спасибо за помощь.

1 ответ

Решение

Я изменил порт redis для одного из доменов, и проблема была решена. Вероятно, celerycam ловил задачи от обоих работников, даже если они были от разных пользователей.

Другие вопросы по тегам