У меня есть проект django, используя следующую структуру каталогов.Структура и макет структуры каталога Django Celery
project/
account/
models.py
views.py
blog/
models.py
views.py
mediakit/
models.py
views.py
reports/
celery.py <-- new
models.py
tasks.py <-- new
views.py
settings/
__init__.py <-- project settings file
system/
cron/
mongodb/
redis/
manage.py
Вот содержимое celery.py, полученные из сельдерея учебника (http://docs.celeryproject.org/en/latest/django/first-steps-with-django.html).
from __future__ import absolute_import
import os
from celery import Celery
# set the default Django settings module for the 'celery' program.
os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'settings')
from django.conf import settings
# app = Celery('reports')
app = Celery('reports',
backend='djcelery.backends.database:DatabaseBackend',
broker='amqp://guest:[email protected]:5672//')
# Using a string here means the worker will not have to
# pickle the object when using Windows.
app.config_from_object('django.conf:settings')
app.autodiscover_tasks(lambda: settings.INSTALLED_APPS)
@app.task(bind=True)
def debug_task(self):
print('Request: {0!r}'.format(self.request))
Некоторые из моих приложений разделены между проектами. отчеты, например, могут быть использованы в 4 разных проектах, поэтому Я могу видеть, как tasks.py должен жить в приложении отчетов, поэтому, когда он добавляется в новый проект, возникают задачи . Я не совсем понимаю, почему celery.py необходимо проживать в приложении отчетов . Когда я добавляю некоторые задачи в приложение учетной записи, я в основном строю один и тот же файл celery.py , заменяя «отчеты» на «учетную запись». Должен ли я иметь один файл сельдерея, который живет на том же уровне как manage.py? Любая помощь или предложения были бы весьма признательны.
Принимается ответ @qwattash, потому что он доставил меня туда, куда я шел. Но действительно ли это стандарт? У меня есть системные и настройки «приложения» для каждого проекта, есть ли celery.py в одном из них? Похоже, это только вопрос предпочтения, но если есть определенный стандарт, я бы хотел его проследить. – scoopseven