2011-01-26 55 views
12

Có thể đặt DEBUG = False cho chỉ một ứng dụng cụ thể trong Django không? Cần tây có known memory leak khi gỡ lỗi được bật. Tôi có một máy chủ phát triển nơi tôi muốn Celery chạy như một dịch vụ, mà không cần gỡ lỗi để nó không bị rò rỉ bộ nhớ, nhưng tôi muốn phần còn lại của ứng dụng Django của tôi sử dụng gỡ lỗi để lỗi sẽ được hiển thị khi thử nghiệm.Vô hiệu hóa Django Debugging cho Celery

Trả lời

30

Cần tây không có một rò rỉ bộ nhớ, nó là cách Django hoạt động:

Khi DEBUG được kích hoạt Django gắn thêm mỗi câu lệnh SQL thực hiện để django.db.connection.queries, điều này sẽ phát triển không giới hạn trong một môi trường quá trình chạy dài.

Tôi đoán bạn có thể sử dụng một hack như:

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

Bạn có chắc rằng sửa đổi để manage.py? – Cerin

+2

Không, làm điều đó trong settings.py của bạn – asksol

+0

Điều này không hoạt động trong Celery 4.x. Tôi cập nhật đường dẫn đến/usr/cần tây/bin, nhưng vẫn còn hack không hoạt động. Tôi nghĩ rằng nó đã làm với cách cài đặt django được nhập theo cách này: self._settings = symbol_by_name ('django.conf: settings') Tôi đã không tìm thấy một workaround nào được nêu ra. – sww314

Các vấn đề liên quan