我在我的django项目中使用官方文档设置了celery
http://docs.celeryproject.org/en/latest/django/first-steps-with-django.html#using-celery-with-django
所以我的项目结构是
└── mysite
├── db.sqlite3
├── manage.py
├── mysite
│ ├── celery.py
│ ├── __init__.py
│ ├── settings.py
│ ├── urls.py
│ └── wsgi.py
└── polls
├── admin.py
├── apps.py
├── forms.py
├── __init__.py
├── migrations
│ ├── 0001_initial.py
│ └── __init__.py
├── models.py
├── tasks.py
├── tests.py
└── views.py
polls
是应用程序polls/tasks.py
有基于类的celery任务。
目前tasks.py
有很多任务,所以文件太大。我想把每一个任务在单独的文件一样
mysite/polls/
├── admin.py
├── apps.py
├── forms.py
├── __init__.py
├── migrations
│ ├── 0001_initial.py
│ └── __init__.py
├── models.py
├── tasks # I want to keep easy task in separate file like this
│ ├── __init__.py
│ ├── download_task.py
│ ├── process_task.py
│ └── upload_task.py
├── tests.py
└── views.py
如何使此设置正常工作?
2条答案
按热度按时间ugmeyewa1#
这是百分百正确的。在
tasks/__init__.py
文件中,确保从其他文件导入任务:然后确保在www.example.com文件中有
autodiscover_tasks
调用celery.py,以发现每个INSTALLED_APPS
中的任务。41zrol4v2#
2023更新
您可以在www.example.com中设置autodiscover_taskscelery.py以查找其他文件。
例如:app.autodiscover_tasks(related_name='tasksv2')
这将在您的apps文件夹中搜索'taskv2.py'。