python - 如何将每个基于芹菜类的任务保存在 django 项目中的单独文件中?
问题描述
我使用http://docs.celeryproject.org/en/latest/django/first-steps-with-django.html#using-celery-with-django的官方文档在我的 django 项目中设置了 celery
所以我的项目结构是
└── 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
有基于类的芹菜任务。
目前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
如何使此设置正常工作?
解决方案
那是100%正确的。在您的tasks/__init__.py
文件中,确保从其他文件导入任务:
from .download_task import *
from .process_task import *
# etc...
然后确保autodiscover_tasks
在 celery.py 文件中有调用,以发现每个INSTALLED_APPS
.
推荐阅读
- mongodb - 容器之间的通信在 docker 网络中不起作用
- c++ - 如何从 long long 转换为 DRAWITEMSTRUCT*
- python - 将参数传递给列表推导中的函数
- json - 有没有办法将 {"number1":5L,"number2":5L} 反序列化为具有长字段的类?
- javascript - 在 Chrome 上替代 msSaveOrOpenBlob
- python - 如何在没有更新的情况下找出 tkinter 窗口的宽度?
- jupyter-notebook - 在 ipywidget 选项卡中显示 qgrid
- node.js - 我无法登录这个简单的 MEAN 应用程序
- node.js - 返回内部地图功能不起作用
- java - Maven 依赖版本