Ответы пользователя по тегу Celery
  • Как настроить логирование Django + Celery с помощью RotatingFileHandler?

    @Sazoks Автор вопроса
    Я нашел ответ на свой вопрос!

    В общем, все дело в том, что когда мы прописываем строчку
    os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'company.settings')
    в celery.py, процесс celery-воркера получает модуль logging (который является singleton'ом) со всеми настройками django и LOGGING из settings.py. Поэтому процесс django и celery-воркера имеют общие настройки logging (celery только еще своего добавляет). Из-за этого они захватывают файлы логов друга друга. Так вот собственно решение. Все дело в том, что windows запрещает переименовывать файлы (при ротации логов), если файл занят другим процессом, а линукс - нет :) Так что все настройки логирования celery можно спокойно прописывать в settings.py, но если запускать это дело под linux'ом.

    Чем это может быть опасно

    В моем случае у меня для каждого процесса свои файлы логов, что логично и правильно. Однако один процесс может удалить/переименовать файл, который использует в это время другой процесс. Другой процесс об этом не узнает и могут быть большие проблемы. Но если процессы работают только со своими файлами, не трогая другие, то проблем не будет.
    Ответ написан
    Комментировать