2011-01-26 2 views
12

Можно ли установить DEBUG = False только для определенного приложения в Django? Сельдерей имеет known memory leak, когда включена отладка. У меня есть сервер разработки, где я хочу, чтобы сельдерей работал как служба, без отладки, чтобы он не просачивал память, но я хочу, чтобы остальная часть моего приложения Django использовала отладку, поэтому при тестировании будут отображаться ошибки.Отключить Django Debugging for Celery

ответ

30

сельдерей не имеет утечки памяти, то, как работает Django:

Когда DEBUG включен Django добавляет каждое выполненное заявление SQL в django.db.connection.queries, это будет расти неограничено в среде процесса давно работает.

Я думаю, вы могли бы использовать хак вроде:

if "celeryd" in sys.argv: 
    DEBUG = False 
+2

ли вы сделать что модификация manage.py? – Cerin

+2

Нет, сделайте это в ваших настройках.py – asksol

+0

Это не работает в Celery 4.x. Я обновил путь к/usr/celery/bin, но все же взломать не удалось. Я думаю, что это связано с тем, как параметры django импортируются таким образом: self._settings = symbol_by_name ('django.conf: settings') Я еще не нашел обходного пути. – sww314

Смежные вопросы